![]() |
1
5
Haskell的语法是 historically derived 从那个 ISWIM ,一种出现在LISP之后不久的语言,在Peter J.Landin 1966年的文章中有描述 The Next 700 Programming Languages . 第6节专门讨论与LISP的关系:
在同一节后面:
因此,有一个明确的意图,就是背离LISP语法,或者至少背离S表达式。 |
![]() |
2
4
在结构上,Haskell程序由一组模块组成。每个模块由一组声明组成。模块和声明是惰性的——它们的存在不会导致任何事情发生。它们只是在静态命名空间中形成条目,编译器在生成代码时使用这些条目解析名称。
作为旁人,你可能会争论
这里的事情得到了更多的意见为基础。我认为Lisp的动态结构与其语法的规则性密切相关。语法检查无法区分用于向全局命名空间添加值的s表达式和用于运行其副作用的s表达式。如果没有句法上的区别,加上语义上的区别就显得很尴尬。所以我认为Lisp语法在某种意义上 太规律了 用于Haskell中不同类型代码之间有严格语义分隔的语言。相比之下,Haskell的语法提供了与语义区别相匹配的句法区别。 |
![]() |
3
3
而不是
|
![]() |
lightning_missile · 词法范围和共享对象 6 年前 |
![]() |
Alexandru Popa · SBCL中奇怪的宏扩展错误 7 年前 |
![]() |
Jacky · 编辑列表中的每个偶数索引元素 7 年前 |
![]() |
HappyFace · lisp典型缩进约定背后的规则是什么? 7 年前 |
![]() |
Jorge · 在公共Lisp中初始化计数器变量 7 年前 |
![]() |
Rorschach · cl循环破坏性修改cons单元 7 年前 |