有很多关于Haskell的宣传,然而,很难获得关于它如何在现实应用程序中使用的信息。Haskell最流行的项目/用法是什么?为什么它能出色地解决这些问题?
当前回答
我有一个很酷的,facebook创建了一个自动重写PHP代码的工具。他们把源代码解析成一个抽象的语法树,做一些转换:
if ($f == false) -> if (false == $f)
我不知道为什么,但这似乎是他们的特殊风格,然后他们漂亮地印刷它。
https://github.com/facebook/lex-pass
我们使用haskell来创建小型的领域特定语言。大量的数据处理。Web开发。网络蜘蛛。测试应用程序。编写系统管理脚本。后端脚本,用于与其他方通信。监视脚本(我们有一个DSL,它可以很好地与munin一起工作,使它更容易为应用程序编写正确的监视代码)。
实际上是各种各样的东西。它只是一种日常通用语言,具有一些非常强大和有用的特性,如果你有点数学倾向的话。
其他回答
从Haskell:
Haskell是一个标准化的、通用的纯函数 编程语言,包括 语义不严格,静态强 打字。它以逻辑学家的名字命名 Haskell咖喱。
基本上,Haskell可以用来创建几乎任何你通常使用其他通用语言(例如c#, Java, C, c++等)创建的东西。
我认为,对于从未使用过函数式编程语言的人来说,这篇文章中的人忽略了最重要的一点:扩展你的思维。如果你是函数式编程的新手,那么Haskell会让你以以前从未想过的方式思考。因此,您在其他领域和其他语言的编程将得到改进。多少钱?很难量化。
例如,用于开发交互式、实时的HTML5 web应用程序。参见Elm,它的编译器是用Haskell实现的,其语法大量借鉴了Haskell的语法。
这是一个非常好的关于Haskell及其用途的信息来源:
开源Haskell发布和增长
Haskell的一个例子是xmonad,一个“用不到1200行代码的功能强大的窗口管理器”。
推荐文章
- 阅读GHC核心
- 函数式编程有软件工程方法论吗?
- 常见的Haskell操作符是否有可发音的名称?
- 编程中的术语“上下文”?
- 动态类型语言与静态类型语言
- SQL或者TSQL是图灵完备的吗?
- 什么时候- xallowambiguousttypes是合适的?
- 为什么程序不是经常用汇编编写的?
- 在Scala中,foldLeft和reducleft的区别
- Java SE 8有对或元组吗?
- 在Android操作系统上运行Haskell程序
- Haskell中“数据”和“新类型”之间的差异
- Haskell对Node.js的响应是什么?
- 一个字符串的字符串列表
- Not a Functor/Functor/Applicative/Monad?