Common Lisp 不是一种单一的语言,它是许多种语言的集合

主要观点:Common Lisp 并非一种单一语言,而是由多种语言组成的集合,包括 Core Scheme-y Common Lisp、CLOS、Generics、loop宏、Clojure 和 Scheme 等,各有特点且相互正交。文中通过示例代码展示了不同语言在实现 Gemtext 解析器等方面的差异,如核心语言中的简单实现、CLOS 中的面向对象方式、Generics 的特性、loop宏的强大功能以及 Clojure 的特点等,同时还提到了format函数作为一种独特的文本格式化 DSL。

关键信息:

  • 书籍《Common Lisp The Language》被认为是证明 Common Lisp 完整性的依据,但书中内容并非完全统一的语言定义。
  • CLtL2 与 ANSI CL 相同,初始核心并非面向对象,而是由变量、函数等组成。
  • CLOS 是一种基于类和方法的 Common Lisp 语言,代码更冗长但更可靠和可内省。
  • Generics 可在不接触类的情况下编程,具有易于扩展、类型检查等优点。
  • loop宏功能强大,能实现各种操作,读起来像英语。
  • Clojure 感觉像经过改良的 Common Lisp,有其独特之处。
  • format函数是一个巨大的文本格式化 DSL。

重要细节:

  • 文中通过多个具体的代码示例,如不同语言实现的 Gemtext 解析器,详细展示了各语言的特点和用法。
  • 提到有项目在尝试使 Common Lisp 更“漂亮”,如实现类似于 Clojure 的功能或在 CL 中直接实现 Clojure。
  • 最后提到原本的草稿还包括关于命名空间和操作系统接口的部分,但为节省空间和避免冗余而舍弃。
阅读 12
0 条评论