所以,基本上我有一个Lisp编程功课。允许这些操作:quote('),car,cdr (cadadr等),第一,第二(第三等),休息,缺点,列表,追加,长度,numberp,listp,atom,symbolp, oddp,evenp,null,not,and,or,cond,equal,defun,let,let *,=,+, - ,*,/
但是,在某些时候我需要这些操作:
- (每个功能列表)
如果函数对于列表的每个元素都为真,则为真
- (某些功能列表)
如果函数对于列表的某个元素为真(非NIL),则为真;返回第一个非NIL值
这些函数在Lisp中,但我不允许使用它们。
是否有一些方法可以实现"每个"和#34;一些"以上操作?
编辑:我猜,它应该是这样的:
(defun every (fun list)
(and (fun (car list))
(every fun (cdr list))))
(defun some (fun list)
(or (fun (car list))
(every fun (cdr list))))
让"未定义的功能FUN"错误。所以棘手的部分是运行FUN函数。