现在我通常使用 Java/C#(两者都喜欢,不能说我专注于其中一个)。
我最近一直在和一位 friend 讨论 F# 和 C# 之间的区别,当时他让我惊讶地说:“所以.. F# 听起来很像 lisp,但它没有‘瑞士军刀’的感觉。”
现在,我有点为这么说感到羞愧,但我不知道 lisp 是什么。
经过一番搜索,我看到lisp很有趣,但被多种方言和运行环境难住了。
这是我所知道的:
我知道3种方言:
lisp 的基本思想似乎是将代码用作数据。
我想知道的是:
我也很高兴你们可以给我任何其他细节! (链接也很受欢迎!电子书等等。)
编辑:这里的所有答案都非常有用。因此,我给了他们所有的 +1 代表,但选择了更具体的最好。谢谢你们。
最佳答案
在来 Lisp 之前,我还深入学习了 Java 和 C#,所以希望可以分享一些有用的观点。
首先,所有 Lisp 都很棒,你绝对应该考虑学习一个。埃里克·雷蒙德 (Eric Raymond) 有一句名言:
"Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot."
Lisps 特别有趣和强大的原因是:
我个人建议现在学习 Lisp 是 Clojure。 Clojure 有几个明显的优势使其脱颖而出:
[]
和哈希图 {}
除了列表()
.纯粹主义者可能不赞成,但我个人相信这些创新发现使该语言更易于使用和阅读。 (.methodName someObject arg1 arg2)
.随着庞大的 Java 库生态系统(主要是开源的)的可用性,Clojure 在实用性方面基本上超越了所有“小众”语言 在应用方面,Clojure 被设计为一种完全通用的语言,因此可以用于任何领域——当然不限于人工智能。我知道有人在初创公司中使用它,将其用于大数据处理,甚至编写游戏。
最后关于性能点:使用更高级别的语言结构基本上总是要付出轻微的性能损失。但是,根据我的经验,Clojure 与 Java 或 C#“足够接近”,您不会注意到通用开发的差异。 Clojure 是 有帮助始终编译 并且您可以使用 可选类型提示 获得静态类型的性能优势。
flawed benchmarks (截至 2012 年初)使 Clojure 的速度是 Java、Scala 和 C# 等静态类型语言的 2-3 倍,比 Common Lisp 落后一点,比 Scheme (Racket) 领先一点。
关于clojure - Lisp 方言以及与 Java/C# 的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9577965/