小编Log*_*der的帖子

Common Lisp: (NULL L) 应该是一个 Lambda 表达式

我最近一直在尝试学习 Common Lisp,这是我使用过的任何编程语言中最痛苦和最缓慢的学习过程。真的很烦我。即使 Notepad++ 显示括号对应什么,它仍然很痛苦。

我一直在尝试编写一个模拟库数据库的程序。我一直被告知"SYSTEM::%EXPAND-FORM: (NULL L) should be a lambda expression"- 我在 Stack Overflow 上读过其他帖子,说这与使用太多括号有关,但是在使用语法一个多小时后,没有任何效果。我希望你们中一些更有经验的 LISP 程序员能够看到我希望是新手的错误。谢谢你。代码如下。

(setq library nil)

(defun add_book(bookref title author publisher)   
    (setf (get bookref 'title) title)
    (setf (get bookref 'author) author)
    (setf (get bookref 'publisher) publisher)
    (setq library (cons bookref library))
  bookref)


(defun retrieve_by (property my_value)
    (setq result nil)
    (do ((L library (cdr L)))
        (cond
            ((NULL L) result)
            (equal (get (car L) property) my_value)
                (cons (car L) result))))
Run Code Online (Sandbox Code Playgroud)

lisp lambda common-lisp

0
推荐指数
1
解决办法
211
查看次数

标签 统计

common-lisp ×1

lambda ×1

lisp ×1