53得票10回答
最佳的Common Lisp集成开发环境

我已经使用Emacs中的Slime作为我的Common Lisp(或在OS X上使用Aquamacs)的主要开发环境,但是否还有其他令人信服的选择?我听说过Lispworks,但它值得一看吗?或者是否有任何方法可以使Emacs更加强大(例如将其连接到超文本规范以进行轻松参考)? 更新:Pas...

53得票10回答
52得票2回答
defvar、defparameter、setf和setq之间有什么区别?

我找到了一个类似的问题。 但是我不太理解那个解释。 所以我正在尝试使用以下示例运行clisp: [1]> (defvar a 5) A [2]> (+ a 1) 6 [3]> (defparameter b 5) B [4]> (+ b 1...

51得票5回答
我能否使用Common Lisp来完成SICP,还是Scheme是唯一可选项?

另外,即使我能使用通用Lisp,我应该使用吗?Scheme更好吗?

51得票10回答
你对Clojure有什么看法?

你们对Clojure有什么看法?我正考虑学习它,目前正在使用Erlang,总体而言还算满意,除了记录方面的麻烦...... Clojure和LISP一样强大吗?

51得票6回答
为什么在Clojure中应该使用'apply'?

以下是 Rich Hickey 在博客中的一段话,但我不明白使用 apply 的动机。请帮忙解释。 Clojure 和 CL 之间的一个重要区别是 Clojure 是 Lisp-1,因此不需要 funcall,而只有在将函数应用于运行时定义的参数集合时才使用 apply。因此,(app...

50得票3回答
如何在Emacs Lisp中访问当前区域的内容?

我想在函数中作为字符串访问当前区域的内容。例如:(concat "stringa" (get-region-as-string) "stringb") 感谢 Ed

50得票8回答
纯函数式语言如何处理基于索引的算法?

我一直在尝试学习函数式编程,但我仍然很难像一个函数式编程者一样思考。其中一个难点是如何实现依赖于循环/执行顺序的索引密集型操作。 例如,考虑以下Java代码:public class Main { public static void main(String[] args) { ...

50得票5回答
惰性求值 vs 宏

我已经习惯了Haskell的惰性求值,现在使用默认为急切求值的语言时会感到很烦恼。这实际上是非常有害的,因为我使用的其他语言通常使惰性求值变得非常麻烦,通常需要编写自定义迭代器等等。所以仅仅通过获取一些知识,我实际上使自己在原来的语言中效率更低了。唉。 但是我听说AST宏提供了另一种干净的方...

50得票14回答
LISP宏能够达到什么程度?

我读到很多关于LISP可以通过宏动态地重新定义语法的内容。我很好奇这到底有多远?你能否重新定义语言结构,使其边缘化成为另一种语言的编译器?例如,你能否将LISP的功能性改变为更接近面向对象的语法和语义,比如更接近Ruby的语法? 特别是,使用宏是否可能消除括号混乱?我已经学会了足够的(Ema...