一个简单的Lisp问题

Kev*_*vin 3 lisp

我现在在使用"reduce"来实现我自己的copy-list版本时遇到了问题.这就是我所做的:

(defun my-copy-list (lst)  
  (reduce #'(lambda (x y)  
              (cons x y)) 
          lst :initial-value nil :from-end t))
Run Code Online (Sandbox Code Playgroud)

但是,我的老师说没有必要使用那个lambda,我对此很困惑.我们如何在不使用lambda的情况下实现相同的功能(但必须使用'reduce').非常感谢.

mqp*_*mqp 15

你的老师意味着你正在定义这个功能

(lambda (x y) (cons x y))
Run Code Online (Sandbox Code Playgroud)

但是已经存在一种能够做到这一点的功能 - cons本身.因此reduce,您可以通过而不是将lambda作为参数传递cons.