本文介绍了为什么Clojure比其他JVM Lisps:Kawa,武装熊或SISC?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Clojure到达现场之前,JVM已经有三个Lisps:, a href =http://common-lisp.net/project/armedbear/ =nofollow noreferrer>武装的熊和



Kawa,ABCL和SISC是对现有语言的重新实现它们在牙齿中相当长。如果由于某种原因你想在JVM上使用标准的Scheme或标准的Common Lisp,它们是非常好的。



Clojure是一种新的语言。它不填充间隙。它增加了全新的可能性。它赞成纯粹的功能性方法 - 方案和CL都是多范式。 Clojure从各种FP语言(ML,Haskell)的设计中大量借用。



是的,您可以向其他Lisps添加并发支持,但这完全缺少了点。 Clojure从一开始就被设计为并发语言。因此,在Clojure中编写并发程序是微不足道的 - 不是火箭科学,因为它是在非功能语言(Scheme,CL不排除)。看下这种方式:



人们说,C允许你在默认情况下编写快速程序。

允许您默认编写并发程序。


The JVM already had three Lisps before Clojure arrived on the scene: Kawa, Armed Bear and SISC.

What gap does Clojure fill that was left by those Lisps?

解决方案

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 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).

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:

People say that C lets you write fast programs by default.

Well, Clojure lets you write concurrent programs by default.

这篇关于为什么Clojure比其他JVM Lisps:Kawa,武装熊或SISC?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 10:06