对于那些既熟悉 Haskell 又熟悉 Lisp 的人来说,我很好奇用 Haskell 和 Lisp 编写代码有多“愉快”(用一个可怕的术语)。
一些背景:我现在正在学习 Haskell,之前曾使用过 Scheme 和 CL(以及对 Clojure 的一些尝试)。传统上,您可以认为我是动态语言的粉丝,因为它们提供了简洁性和快速性。我很快就爱上了 Lisp 宏,因为它给了我另一种避免冗长和样板代码的方法。
我正在寻找哈斯克尔难以置信很有趣,因为它向我介绍了我不知道存在的编码方式。它肯定有一些方面看起来有助于实现敏捷性,例如易于编写部分函数。然而,我有点担心丢失 Lisp 宏(我假设我丢失了它们;说实话我可能还没有了解它们?)和静态类型系统。
在这两个世界中进行过大量编码的人是否会介意评论体验有何不同、您更喜欢哪一种以及所述偏好是否是视情况而定?
简短回答:
- 几乎任何你可以用宏做的事情都可以用高阶函数来做(我包括单子,箭头等),但它可能需要更多的思考(但只是第一次,这很有趣,你会成为一个更好的程序员),以及
- 静态系统足够通用,它永远不会妨碍你,而且有点令人惊讶的是,它实际上“有助于实现敏捷性”(正如你所说),因为当你的程序编译时,你几乎可以肯定这是正确的,所以这肯定让你尝试一些你可能不敢尝试的事情——编程有一种“动态”的感觉,尽管它与 Lisp 不同。
[注:有一个“哈斯克尔模板 http://www.haskell.org/haskellwiki/Template_Haskell“这让你可以像在 Lisp 中一样编写宏,但严格来说你不应该need it.]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)