![]() |
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
而不是
|
![]() |
trpnd · 如何定义由两个任意单声道变压器组成的单声道变压器? 2 年前 |
![]() |
Fabus1184 · Haskell mapM_不打印 2 年前 |
![]() |
Gotthold · 基于范数约束向量的类型 2 年前 |
![]() |
jian · haskell将另一个函数用作输入参数 2 年前 |
![]() |
Jocafrei · 用Haskell函数实现最大公约数函数 6 年前 |