我至今仍然不明白符号“iamasymbol”的目的。我理解数字、布尔值、字符串、变量,但符号对于我这种习惯于命令式思维的人来说有点难以理解。究竟该如何使用它们?在程序中应该如何使用它们?我对这个概念的理解非常有限。
我刚开始学习Lisp,但不知道如何将代码编译和链接为可执行文件。 我正在使用clisp,clisp -c命令会生成两个文件: .fas .lib 接下来该怎么做才能得到一个可执行文件呢?
我看到Practical Common Lisp使用(defvar *db* nil)来设置全局变量。使用setq达到同样的目的不可以吗? 使用defvar与setq相比,有什么优缺点呢?
我之前学习过Clojure并且非常喜欢这门语言。我也很喜欢Emacs,并用Emacs Lisp编写了一些简单的东西。然而,有一件事情会让我在使用Elisp时产生心理障碍,那就是动态作用域的概念。它对我来说太陌生了,感觉像是半全局变量。 因此,在变量声明方面,我不知道哪些操作是安全的,哪些是危...
我的一个朋友引起了我的注意,他提到了第四届欧洲Lisp研讨会的欢迎消息: ... 实现和应用 Lisp方言中的任何一种,包括 Common Lisp、Scheme、Emacs Lisp、 AutoLisp、ISLISP、Dylan、Clojure、ACL2、ECMAScript...
我正在开发一个用C语言编写的Scheme解析器。目前,它使用C运行时栈作为自己的栈,这在实现continuations时会出现一些小问题。我目前的解决方案是手动将C堆栈复制到堆上,然后在需要时再将其复制回来。除了不符合标准C之外,这个解决方案也远非理想。 在C语言中,如何最简单地实现Sche...
我喜欢学习超出我的舒适领域的语言,但在函数式语言方面找到一个起点很困难。我听说过《计算机程序的构造和解释》,但几年前我试着阅读它时感觉有些吃力。我更擅长于通过书籍学习,但当我去当地书店时,LISP的书看起来有点可怕。 那么,有什么好的起点吗?我的目标是能够使用函数式编程语言在6个月左右内解决...
在Common Lisp中,您可以这样做:(defun foo (bar &key baz quux) (list bar baz quux)) (foo 1 :quux 3 :baz 2) ; => (1 2 3) Clojure没有关键字参数。其中一种替代方案是:(de...