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

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

22得票4回答
为什么要使用Sharp引用Lambda表达式?

这是一种在通用Lisp中经常使用的技术,它在《On Lisp》一书中有详细介绍:> (mapcar #'(lambda (x) (+ x 10)) '(1 2 3)) (11 12 13) 为什么需要sharp-quote,甚至可能?lambda表达式返回函数对象,而s...

12得票6回答
LISP中的GUI编程?

几年前我做了很多Lisp编程,但那都是基于控制台的东西。我曾经用过cells-gtk(2),但现在它已经不再维护,而且我们现在已经使用Gtk3了。 有人知道一个好的Lisp GUI编程库吗(方言无所谓)?

7得票5回答
如何运行Sutton和Barton的“强化学习”Lisp代码?

最近我一直在阅读强化学习方面的内容,我发现"强化学习:导论"是一本非常好的指南。作者还提供了源代码作为他们许多实例的帮助。 在开始问题之前,我应该指出我的Lisp实践知识很少。我知道基本概念和它的工作原理,但我从来没有真正有意义地使用过Lisp,所以我可能只是做了一些极其新手的事情。 :) ...

15得票1回答
Eval-when 何时使用?

在阅读了大量有关Lisp语言的eval-when运算符的文档后,我仍然无法理解它的用途。我知道使用此运算符可以控制表达式的求值时间,但是我无法想出任何适用的示例? 最好的问候, utxeee。

11得票4回答
通用Lisp:在一个作用域内重新定义现有的函数?

在Common Lisp中,是否可以在特定的范围内重新定义已定义的函数?例如,给定调用函数B的函数A。我能否在调用A时临时重新定义B? 我正在寻找类似于let块的东西,但可以重新定义函数。

7得票1回答
通用Lisp:如何访问特定多维数组的一行?

假设我写了以下内容: (setf s (make-array (list 9 9) :element-type 'bit)) 所以s是一个9x9的位矩阵。 我想获取s的第一行。我应该怎么做? 我可以这样做: (setf s (make-array 9 :ele...

7得票4回答
Common Lisp中类似于Python的enumerate()函数

我想对一个列表进行映射,但在列表中要跟踪元素索引。 在Python中,我可以这样做: map(lambda (idx, elt): "Elt {0}: {1}".format(idx, elt), enumerate(mylist)) 我正在尝试将其翻译为以下内容: 我正在尝试将其翻译...

12得票3回答
如何在Common Lisp中进行模式匹配

我不知道Common Lisp是否存在模式匹配函数,但是我必须自己创建函数。我对Lisp一无所知。能否给我一个学习Lisp的提示,最重要的是如何在Lisp中进行模式匹配。我需要传递一个模式和一个事实,并判断它们是否匹配。以下是一个示例:(heroes (hitpoints=hp) (mana=...

39得票2回答
在Common Lisp中,为什么在lambda前面要使用#'符号?

我想知道为什么我看到的大多数Common Lisp代码都会像这样: (mapcar #'(lambda (x) (* x x)) '(1 2 3)) 而不是简单地写成 (mapcar (lambda (x) (* x x)) '(1 2 3)), 尽管两种方式都能工作。我开始学习Com...