我有什么方法可以定义函数my_list
,my_cons
,my_append
,它们执行与list
,cons
和{{1}类似的功能分别?
否则我在哪里可以找到这些功能的实现?
由于
答案 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