为什么Haskell如此庞大?

6

我刚接触Haskell,目前感觉很喜欢。一个引起我的注意的事情是它似乎相当庞大,具有许多语法结构和库,这些库为几乎所有功能定义函数。例如,Data.Map定义了近100个函数。Data.Set也定义了许多函数,而Data.List也提供了与Data.Set相同的许多功能。

我对此可能的原因有初学者的看法(为所有常见模式提供函数,减少噪音),但我很想听听资深人士对此问题的看法。


3
被投票关闭:这是一个很好的问题,但非常依赖于个人观点,不适合在SO上发布。我建议在/r/haskell上发布自己的帖子。 - Dan Burton
1
好的,在这里 - Scott
1个回答

3
我认为Haskell语言的规模处于中等水平(比Lisp大,比C ++小)。尽管所有的语法糖都有明确定义的翻译成Haskell Core(大约有7个元素),所以很难区分库和语言。
事实上,库包含了许多小函数,基本上是因为Haskell程序员发现了一些常见的模式并将它们编写成代码。作为一个学习者,我经常会有这样的感觉:“应该有一个函数来做这件事”,然后发现确实存在这样的函数。你可以通过自己编写函数并在几天后在某个库的文档中找到它来学习这些函数。

1
“比Lisp更大”是指Scheme吗?Common Lisp以庞大著称,而Scheme实际上是作为对其的反应而创建的。 - Pascal Cuoq
@PascalCuoq:即使是通用Lisp与许多现代语言相比也相对较小。而C++实际上并不是那么庞大,只是有很多不同的做事方式。 - leftaroundabout
@PascalCuoq,你是说Scheme是为了迎接即将到来的巨大Common Lisp而创建的吗? - Peteris
@Peteris 哦,对了,我搞混了。根据我语言版本的维基百科页面,“在七十年代[...]Scheme的创造者的目标是在保留必要方面的同时净化Lisp”(这句话不在英文版页面上),而第一本关于Common Lisp的书是在1984年出版的(尽管Common Lisp直到1994年才被标准化)。 - Pascal Cuoq
哦,亲爱的,我担心我已经开始了一些我无法停止的事情。当我谈论大小时,我实际上是在考虑语法(即S-exprs)而不是庞大的内置函数列表。 - Paul Johnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接