【发布时间】:2011-06-09 10:59:20
【问题描述】:
我一直在阅读 Doets 和 Eijck 的 The Haskell Road to Logic, Maths and Programming 2004。这似乎是一本备受推崇的书,但当它声称 Haskell 是 Lisp 家族的成员时,我感到很震惊。这是准确的吗?我会用 s 表达式、不纯函数和列表来描述 Lisps,作为唯一的复合数据结构。 Haskell 没有这些。这种说法有什么理由?
【问题讨论】:
-
我不同意,但作者给出的论点是什么?
-
无!他们给出了一般性的介绍,并说“作为一种函数式语言,Haskell 与 ML、Occam 和 Clean 一起属于 Lisp 家族”。
-
那是假的。 Lisp 可能是第一个函数式语言,但这并不能使所有函数式语言都成为 lisp,就像 Java 不是 Smalltalk 和 Python 不是 C 一样。此外,在您的 Lisp 特性列表中,Haskell 缺乏,Lisp 几乎没有Haskell 超越初学者级别的特性(初学者:Monads、代数数据类型和模式匹配)。
-
列表不是 Lisp 中唯一的复合数据结构。它们恰好被用于语法树。
-
这不正是一个“我很好奇其他人是否有这样的感觉”类型的“问题”吗?根据常见问题解答,这些都是要“避免”的。
标签: haskell lisp language-comparisons