我已经编码了几年了,没什么太复杂的。C++ 是我最了解的。我最近偶然发现了 Paul Graham 的网站,编码恐怖,现在在这里。
我要学什么来“用函数式编程的方式启发自己”?Haskell、Scheme 还是 CLisp?
我已经编码了几年了,没什么太复杂的。C++ 是我最了解的。我最近偶然发现了 Paul Graham 的网站,编码恐怖,现在在这里。
我要学什么来“用函数式编程的方式启发自己”?Haskell、Scheme 还是 CLisp?
如果您对函数式编程感兴趣,Haskell 是该列表中唯一的纯函数式语言。Common Lisp 是一种弱功能的混合范式语言,Scheme 功能更强,但仍然不纯。Lisp 之所以有趣还有其他原因,但 Haskell 几乎是函数式编程的最先进技术。
顺便说一句,我鼓励像 Haskell 这样更强大的函数式语言的原因是因为“学习函数式编程”的很大一部分是学习如何以不同的方式思考你的程序。如果你的语言让命令式写作感觉很自然,那么很容易陷入这种思维方式,而永远不会意识到有不同的方式可以做到这一点。
三者都好,因人而异。
如果您决定使用haskell,这是一个很好的资源:learnyouahaskell和现实世界的haskell
'enlighten myself with the ways' of functional programming?
Haskell's the strongest exemplar of the functional style, emphasizing purely functional programming (no side effects), strong static typing, and with a pragmatic implementation with an emphasis on multicore parallelism, while also having a huge community (around 2000 libraries available on http://hackage.haskell.org , and many online resources).
It's somewhat famous for retraining how people think about programming.
But this is advocacy, and not a useful stackoverflow question and answer session. You'll have to decide for yourself what you're looking to learn.
正如其他答案所说,这三个都很好。
但是,如果您决定使用 Lisp,那么我建议您选择Clojure,这可能是它最近的转世版本。
你听说过 F#、ML 或 OCaml 吗?这三种语言属于 ML 家族。
F#是 Microsoft 支持的一种新的 ML 方言,将随 Visual Studio 2010 一起提供。F#(或其他 ML 语言)的好处是,当您第一次开始时,您可以编写命令式代码并逐渐学习良好的函数式风格。
这是我为Project Euler #2编写的示例。当我第一次这样做时,我使用了命令式风格。后来,我知道如何使用惰性序列,这是一个强大的函数式编程概念。