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