在LISP中实现基本库函数(手动)

时间:2010-11-18 13:44:42

标签: list lisp common-lisp append

我有什么方法可以定义函数my_listmy_consmy_append,它们执行与listcons和{{1}类似的功能分别?

否则我在哪里可以找到这些功能的实现?

由于

2 个答案:

答案 0 :(得分:2)

对于my_list和my_append,解决方案是:

(defun my_list (&rest arguments)
    `(,@arguments)
)

(defun my_append (a_list an_item)
    `(,@a_list ,an_item)
)

(my_append (my_list 'a 'b 'c) 'd)

我可能错了,但我不知道任何替代方法来制作配对,因此似乎不可能替代缺点。不过,我对LISP世界还很陌生。

答案 1 :(得分:0)

如果你希望你的列表与你的应用程序本机的ons相同,你必须从一些原语开始构建一个缺点,可能是缺点或点对,以及将cons单元拉开的东西(汽车, CADR)。其他人可以从中构建。

如果您想重新实现功能上(双关语)等效的内容,请参阅http://en.wikipedia.org/wiki/Cons#Not_technically_fundamental