可能重复:
Is Clojure closer to Scheme or Common Lisp from a beginner's perspective?
Clojure是一种在JVM上运行的Lisp方言
Clojure被认为是Lispy还是Schemey?
我的意思是它像Lisp还是喜欢Scheme?
答案 0 :(得分:12)
如果用“Lispy”表示“喜欢Common Lisp”,那么......
Clojure是“Lispy”,因为它有完整的(非卫生的)宏,并且不保证尾调用优化(recur
除外)。
Clojure是“Schemey”,因为它对函数和值都有一个命名空间(它是一个Lisp-1)。
答案 1 :(得分:10)
Lisp主要有两个含义:
在这个意义上,Scheme,Clojure,Emacs Lisp,Common Lisp,Logo,......都有些“痴迷”。
可以看出,在Common Lisp中只需很少的更改就可以运行几十年前的Lisp代码。
在这种观点中,Scheme和Clojure都不是特别的'Lispy',因为它们与'主分支'和历史悠久的Lisp广泛不兼容。
Clojure是一种新的Lisp方言,它与所有其他Lisps以及历史悠久的Lisp大多不兼容。功能名称,标识符,语法等都是不同的。在我看来,它远离CL,因为它来自Scheme。
答案 2 :(得分:5)
当人们说“Schemey”时,他们倾向于表示“Lisp-1”与“Lisp-2”,这在历史上是区别。 Clojure以这种方式是有计划的。
但除此之外,Clojure在风格上更像是非常现代的lisp敏感度。可能是这种现代风格中最着名的前身是Arc。如果有的话,Clojure就是arc-ish:它更喜欢嵌套深度减少的构造(参见clojure和arc let与普通的lisp或scheme let);两者都是不同的运行时嵌套在更大,更通用的解释器运行时中,可以免费提供更大的库;并且两者都在名称中简洁,而不是常见的lisp规范中的疯狂长名称(例如,多值绑定)。
Clojure是arc-ish。