诺维格大师曾经说过:
方案的美妙之处在于,整个语言只需要5个关键词和8个句法形式。相比之下,Python有33个关键字和110个语法形式,Java有50个关键字和133个语法形式。所有这些括号可能看起来都很吓人,但是Scheme语法具有简单和一致的优点。(有人开玩笑说,"Lisp“代表”许多令人恼火的愚蠢的部分“;我认为它代表"Lisp在语法上是纯粹的”)。
那么Haskell与之相比呢?
发布于 2020-04-22 22:25:40
对于Haskell 98,可能与Python或Java的数量级大致相同。
很难确切地确定什么是“句法形式”。例如,Java计数可能是从表达式级别和更高级别(即“标识符”是原子的级别)的扩展BNF规则的数量中提取的,就像在此Java语法页上列出的大约120条规则一样。这似乎与这个有关计划的网页是一致的,在这个有关计划的网页中,我数了大约14个,忽略了那些似乎完全与标识符和文字的词法结构有关的规则。我们用的是近似,其中8和14应该被认为是相等的。
因此,根据这个指标,我从Haskell 98报告第9.5节上下文自由语法(它似乎与Java引用的抽象级别大致相同)中的快速而肮脏的计数是76。同样,我们在这里使用近似,其中76、110和133都应该被认为是相等的,所以Haskell == Python。
也可以安全地说,根据注释,GHC特定的语法(语用、原语和许多许多扩展)可以很容易地将这一数字增加一倍或三倍。
尽管如此,我不确定这个指标有多有用。我不反对有人声称Scheme是一种美丽的语言,但我认为,Scheme是一种美丽的语言,因为(或者主要是因为)它有少量的关键字和句法形式,这是一种过分简化的现象。
https://stackoverflow.com/questions/61355767
复制相似问题