Lisp 几种方言的一些区别

原创
2013/09/26 01:15
阅读数 1.7K

Common Lisp

规模太大,文档太厚,让人望而生畏。继承了 Lisp 50年的许多精华, 还有糟粕.

精华: 完整的 Lisp 实现, 庞大完整的库. 生产级的设计. 支持 Read Macro, package 命名空间。

糟粕:

  1. 符号名称默认不分大小写,虽然可以用 ‘| 。。 |’ 的形式创建小写符号,但太难看了。

  2. 没有定义正则表达式的支持,这个功能是如此的普通,致使大量的非官方库被使用,并因此了很多争论。

  3. 大量冗余的函数库。

  4. 文档古旧,社区松散。大部分的文档和书籍都是10年以前的。社区代码的发布推广,基本上还是靠人工宣传。太多分散的网站和平台。让社区很多人做了很多相同的无用功。

  5. 没有出色的应用。好的语言如果没有好的应用,谁能相信呢?

Scheme

文档少,学院气氛浓厚,缺乏应用。不适合生产应用。 锁定了 Read Macro 语法,语法分化倾向明显。不支持 Pakcage,不支持函数和变量命名空间的分离。不支持 Unicode。

如果有一些好的文档,也许能让更多人认识到这门语言精巧,优美的设计。

Emacs Lisp

没有语言基础的入门资料,假定每个人都学过 Lisp。不支持 Pakcage,只能通过命名约定的方式建立模块化管理机制。隐藏在一个编辑器之中。

也锁定了 Read Macro。

优点:符号区分大小写。文档丰富细致,没有实现分化的倾向。大量优秀的文本处理方面的函数和功能完整的正则表达式实现。

不适合批量文件处理,缓存是文本的表现形式。

Clojure

用 Java 实现的 Lisp 解释器。锁定了 Read macro, 大量分化的语法,减弱了代码和数据结构之间的转换能力。

优点:共享 Java 的库,吸取了很多语言的优点,命名风格简洁清晰,并发支持出色。已经有了 C# 和 JavaScript 的实现。

在语言表达能力上做了很多妥协,发展迅速。对 Lisp 的推广作用很正面。

展开阅读全文
打赏
1
1 收藏
分享
加载中
为什么不直接用lisp而要使用方言呢?
2015/02/23 20:04
回复
举报
沙枣博主

引用来自“pollex”的评论

NewLisp 一个最能设计应用软件的精华版Lisp
我正在学习 newlisp 你也喜欢?
2014/05/20 09:22
回复
举报
NewLisp 一个最能设计应用软件的精华版Lisp
2014/05/14 16:06
回复
举报
更多评论
打赏
3 评论
1 收藏
1
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部