18得票7回答
读取宏:你用它们做什么?

我正试图了解到目前为止我没有太多使用过的 Lisp 的部分。读取宏目前引起了我的注意。关于它们的用途并没有太多的信息,看看别人用它做了什么会有所帮助,既可以得到它们的工作方式的示例,也可以看到可以通过它们解决哪些问题。基于此,是否有任何指南来了解什么是读取宏的好和坏用法?

15得票3回答
Common Lisp中的读取宏有哪些优势是Clojure所没有的?

我最近一直在使用Clojure,但我仍然不理解哪些功能是普通的Lisp读取宏无法提供的。你能简单地为我解释一下吗?

10得票2回答
在.sbclrc文件中,运算符#+和#-是什么意思?

有人知道.sbclrc中的#+和#-运算符是什么意思吗?我在手册中找不到相关信息。 在安装quicklisp后,我在.sbclrc中看到了#-。 #-quicklisp (let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"...

8得票2回答
Sharpsign Colon 和 Gensym 的区别

我刚刚阅读了关于#:阅读宏的内容,听起来它和gensym有非常相似的作用。 #::"引入一个未注册的符号" gensym:"创建并返回一个新的、未注册的符号" 因此,进行一个简单的测试: CL-USER> #:dave ; Evaluation aborted on #<...

7得票2回答
在cl-mysql的代码中,“#+”是什么意思?

最近我尝试阅读有关cl-mysql的代码,但被#+卡住了。 尝试在谷歌上搜索,但没有结果,所以来到这里寻求帮助。 (defun make-lock (name) #+sb-thread (sb-thread:make-mutex :name name) #+ecl (mp:make...

7得票3回答
Common Lisp:有没有更简单的方法输入数学表达式?

我喜欢使用Common Lisp,但有时输入简单的数学表达式真的很痛苦,比如: a(8b^2+1)+4bc(4b^2+1) (当然可以转换这个,但是有点慢,我先写 (+ () ()),然后在每个括号内放 (* () ())...) 我想知道这里是否有人知道更好的输入方法。 我正在考虑编...

7得票3回答
使用读取宏编译Lisp代码

我有点难以理解在将lisp代码编译成字节码或原始汇编(或fasl文件)时,读取宏的处理方式。也许我理解了但不确定。我很困惑。 当你使用读取宏时,难道不需要可用的源代码吗? 如果需要,那么您必须执行组成读取宏函数的源代码。如果不需要,那么像read-char这样的操作怎么可能有效呢? 为了...