Ser*_*pia 465 haskell programming-languages functional-programming
例如,如果我开始学习Haskell,我可以发现自己使用它.我听说这种语言的一些常见用途是功能性的吗?
Xin*_*nus 303
这种语言有哪些常见用途?
快速应用开发.
如果你想知道"为什么是Haskell?",那么你需要考虑函数式编程语言的优点(取自http://c2.com/cgi/wiki?AdvantagesOfFunctionalProgramming):
功能性课程往往比他们的ImperativeLanguage同行简洁得多.通常这会提高程序员的工作效率
FP鼓励快速原型设计.因此,我认为它是ExtremeProgrammers最好的软件设计范例......但我知道什么?
FP在功能方面是模块化的,其中ObjectOrientedProgramming在不同组件的维度上是模块化的.
有蛋糕吃的能力.想象一下,您有一个复杂的OO系统处理消息 - 每个组件可能会根据消息进行状态更改,然后将消息转发给它已链接到的某些对象.如果调用层次结构中的某个对象确定消息存在缺陷,那么能够轻松回滚每个更改都不是太酷吗?拥有不同国家的历史怎么样?
为您做的许多内务处理任务:解构数据结构(PatternMatching),存储变量绑定(带闭包的LexicalScope),强类型(TypeInference),GarbageCollection,存储分配,是否使用盒装(指向值)或未装箱(直接值)代表......
安全的多线程!不可变数据结构不受数据争用条件的限制,因此不必受锁的保护.如果您总是分配新对象,而不是破坏性地操纵现有对象,则可以在分配和GarbageCollection系统中隐藏锁定.
除此之外,Haskell还有自己的优势,例如:
1 / 0作为列表的第一项,如果您仅使用第二项,它仍然可以使用.您可以查看以下链接:
whe*_*ies 227
我认为这篇文章中的人对于从未使用过函数式编程语言的人来说是最重要的一点:扩展你的思想.如果您不熟悉函数式编程,那么Haskell会让您以前所未有的方式思考.因此,您在其他领域和其他语言的编程将得到改进.多少?难以量化.
Don*_*art 84
对于像Haskell这样的通用语言来说,有一个很好的答案:一般编写程序.
对于它在实践中的用途,我有三种方法来确定:
表明它适用于图形,网络,系统编程,数据结构,数据库,开发,文本处理......
最后,我对它真正强大的看法是:
我希望这可以让你了解你的问题有多广泛,如果要以任何特异性回答.
Rob*_*ves 18
来自Haskell Wiki:
Haskell具有多种商业用途,从航空航天和国防到金融,再到网络初创公司,硬件设计公司和割草机制造商.该页面收集有关Haskell工业用途的资源.
根据维基百科的说法,Haskell语言的出现是因为需要将现有的功能语言合并为一个可用于未来功能语言设计研究的通用功能语言.
很明显,根据可获得的信息,它已经超出了它的原始目的,并且不仅仅用于研究.它现在被认为是一种通用的函数式编程语言.
如果你还在问自己,"我为什么要使用它?",然后阅读为什么要使用它?Haskell Wiki介绍部分.
Ray*_*yne 13
Haskell是一种通用编程语言.它可以用于您使用任何其他语言的任何事情.除了自己的想象力,你不受任何限制.至于它适合什么?好吧,几乎所有的东西.功能语言不能胜任的任务很少.
是的,我是来自Dreamincode的Rayne.:)
我还想提一下,如果您还没有阅读维基百科页面,函数式编程就像面向对象编程这样的范例.以防你不知道.Haskell在它工作的意义上也是有用的; 它在那方面运作得很好.
仅仅因为语言不是面向对象语言并不意味着语言受到任何限制.Haskell是一种通用编程语言,与Java一样通用.
我有一个很酷的,Facebook创建了一个重写PHP代码的自动化工具.他们将源解析为抽象语法树,进行一些转换:
if ($f == false) -> if (false == $f)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但这似乎是他们特殊的风格,然后他们打印它.
https://github.com/facebook/lex-pass
我们使用haskell制作小域特定语言.大量的数据处理.Web开发.网络蜘蛛.测试应用.编写系统管理脚本.后端脚本,与其他方通信.监控脚本(我们有一个与munin很好地配合使用的DSL,可以更轻松地为您的应用程序编写正确的监控代码.)
实际上是各种各样的东西.它只是一种日常的通用语言,具有一些非常强大和有用的功能,如果你有点数学倾向.