71得票9回答
为什么Lisp社区如此分裂?

首先,这门语言有两个主要的方言 (Common Lisp 和 Scheme),并且每个方言都有许多个体实现。例如,Chicken Scheme、Bigloo 等,它们之间存在些许差异。 从现代的角度来看,这是很奇怪的,因为现今的语言通常具有明确的实现/规范。想想 Java、C#、Python...

70得票13回答
在程序运行时编辑程序?为什么这样做?

最近我开始对Lisp和Lispy语言产生更多兴趣,并且发现它们相当强大。 网络上到处都在说,使用Lisp、Clojure等编写代码的好处是可以在“运行时编辑程序”。 也许我缺少了什么,但这有什么意义呢? 当然,这可能会节省几秒钟,但仅此而已吗?每当我对程序进行更改时,我只需停止它,然后重...

69得票4回答
Lisp的读取-求值-输出循环与Python的有何不同?

我遇到了Richard Stallman的下面这句话:“当你启动Lisp系统时,它会进入一个读取-求值-输出(read-eval-print)循环。大多数其他语言都没有相应的读取,求值和输出功能。这是令人震惊的缺陷!” 现在,我在Lisp中编写代码很少,但我在Python中写了相当多的代码,...

68得票7回答
Lisp / Scheme中的 '(撇号)是什么?

我正在自学Scheme,现在是第1天第1个小时。很明显,我什么都不懂。所以我在读The Little Schemer并使用这个东西: http://sisc-scheme.org/sisc-online.php 作为解释器。 我需要在代码中使用'。(atom? 'turkey) ...

68得票11回答
为什么选择Clojure而不是其他JVM Lisp:Kawa、Armed Bear或SISC?

在Clojure出现之前,JVM已经有了三种Lisp语言: Kawa、Armed Bear 和 SISC。 Clojure填补了这些Lisp语言所留下的空白是什么?

65得票4回答
“下行函数参数”是什么?

Jamie Zawinski在他(1997)的文章"java sucks"中使用了这个术语,好像你应该知道它的含义: 我真的很讨厌没有downward-funargs; 匿名类是一个糟糕的替代品。(我可以没有长期存在的闭包,但是我发现缺少函数指针非常痛苦。) 这似乎是Lisper的俚语,我...

64得票13回答
Lisp和Erlang原子,Ruby和Scheme符号。它们有多有用?

在编程语言中使用原子(atom)或符号(symbol)来表示某种常量的概念,在一些编程语言中得到了应用。我发现Lisp、Ruby和Erlang等语言在这方面有一些不同,但总体上的概念相同。作为一名对编程语言设计感兴趣的人,我很想知道在实际应用中,有原子类型的编程语言提供了什么价值。而Pytho...

63得票7回答
Lisp如何让你重新定义语言本身?

我听说Lisp可以重新定义语言本身,而我尝试过研究它,但是没有清晰的解释。有没有简单的例子可以提供?

62得票7回答
优秀的Common Lisp代码示例是什么?

我已经学习了足够的Common Lisp知识,可以勉强编写一个应用程序。我已经阅读了Seibel的“Practical Common Lisp”。 为了理解Common Lisp的惯用法和真谛,我应该阅读哪些库或程序?

61得票1回答
像Elixir和Julia这样的编程语言在什么意义上是同像的?

在Lisp中,同构性很容易理解: (+ 1 2) 既是对+函数的调用,参数为1和2,同时也是包含+、1和2的列表。它同时具有代码和数据的属性。 然而,在像Julia这样的语言中: 1 + 2 我们可以将其解析为Julia中的Expr表达式: :(1 + 2) 然后我们可以获取AS...