例如,我应该输入的是第一个#' oddp'(1 2 3),它应该找到第一个奇数返回列表,所以我认为我需要做什么是写一个函数只有一个参数列表,但我只知道找到列表中的第一个元素,那么如何在我的代码中使用条件
(defun finfirst(list)(cond((null list) nil)
如果我完成了这个,那么它会告诉我我需要两个参数,我只是不知道我该怎么做这个功能,只是给我一些暗示
答案 0 :(得分:1)
如果只需要您描述的功能,则可以使用功能find-if,例如:
(find-if #'oddp '(1 2 3))
如果您想自己实现它,可以执行以下操作:
(defun finfirst (function list)
(cond
((null list) nil)
((funcall function (first list)) (first list))
(t (finfirst function (rest list)))))
然后像这样使用它:
(finfirst #'oddp '(1 2 3))