我正在尝试在 lisp 中编写一个函数,它有 2 个参数,一个函数 F 和一个列表 L,如果我将 '> 代替 F 并且列表 L 是 '(1 2 3 4 5),它将返回 5,因为 5 是最大的。如果我们输入 '< 那么它会比较所有列表元素并给出最小的一个作为输出。等等。
我们甚至可以将自定义编写的函数代替 F 进行比较。我希望我能提供更多示例代码,但我真的一开始就卡住了。
(DEFUN givex (F L)
(cond
(F (car L) (car (cdr L))
;after this i got stuck
)
)
另一个尝试编写这个函数
(defun best(F list)
(if (null (rest list)) (first list)
(funcall F (first List) (best (F list)))))