问题描述
在 Clojure 出现之前,JVM 已经拥有三个 Lisps:Kawa、武装熊 和 SISC.
The JVM already had three Lisps before Clojure arrived on the scene: Kawa, Armed Bear and SISC.
Clojure 填补了那些 Lisps 留下的空白?
What gap does Clojure fill that was left by those Lisps?
推荐答案
Kawa、ABCL 和 SISC 是对已经存在很长时间的现有语言的重新实现.如果出于某种原因您想在 JVM 上使用标准 Scheme 或标准 Common Lisp,它们是非常好的.
Kawa, ABCL, and SISC are reimplementations of existing languages that are quite long in the tooth. They are excellent if for some reason you want to use standard Scheme or standard Common Lisp on the JVM.
Clojure 是一种新语言.它不会填补空白.它增加了全新的可能性.它支持纯函数式方法——Scheme 和 CL 都是多范式.Clojure 大量借鉴了各种 FP 语言(ML、Haskell)的设计.
Clojure is a new language. It doesn't fill a gap. It adds entirely new possibilities. It favors a purely functional approach- Scheme and CL are both multi-paradigm. Clojure borrows heavily from the design of various FP languages (ML, Haskell).
是的,您可以为其他 Lisps 添加并发支持,但这完全没有抓住重点.Clojure 从一开始就被设计为并发语言.如此之多以至于在 Clojure 中编写并发程序是微不足道的 - 不像在非函数式语言中那样是火箭科学(不排除方案,CL).这么看:
And yes you could add concurrency support to other Lisps, but that's entirely missing the point. Clojure was designed from the very beginning as concurrent language. So much so that writing concurrent programs is trivial in Clojure - not rocket science as it is in non-functional languages (Scheme, CL not excluded). Look at this way:
人们说默认情况下 C 可以让您编写快速的程序.
People say that C lets you write fast programs by default.
好吧,Clojure 允许您默认编写并发程序.
Well, Clojure lets you write concurrent programs by default.
这篇关于为什么 Clojure 优于其他 JVM Lisps:Kawa、Armed Bear 或 SISC?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!