假设我在lisp中有两个列表 (setq a '(p q))(car b) is 1 现在我想定义一个符号'(test P1),但是如果我使用下面的(setq c '(test (car a) (car b))) 我得到'(test (car a) (car b))这是可以理解的,但我只是想知道如何将(<e
以下代码似乎证实了这一点: (setq a '(1 . 2)) (setf (car b) 10)对该表单的计算给出了cons设置car of b会更改a的car。您可以在中尝试这一点。(我读过一些课文,但找不到指向这种行为的那一节。)我假设上面的a和b持有cons对象,而不是指向conses的指针。即使实际的lisp实现与指针一起工作,这也不应该在repl级别
定义函数'occ‘,它接受列表L和符号A,并计数符号A在L中的出现情况,例如:(occ’((S)o) d) 'f) ->0。到目前为止,我得到的是:(setq counter 0) ; Breaking the list down atom by atom and recursing
(or (occ a (car list))(
我正在尝试扩展并学习lisp。基础之一是实现一个简单的堆栈。除了我的pop函数之外,所有的东西都可以工作。;Returns and removes the first element of the stack (let (temp (car *stack*))(setq *stack* (cdr *stack*))这会正确地移除堆栈的"top“,但不会返回它。早些时候,我有这样的想法:
;Returns and removes the first element o