gpt4 book ai didi

LISP 处理讨厌的 NIL

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:16 24 4
gpt4 key购买 nike

我有以下过滤函数,可以过滤掉不满足函数 f 的列表 x。

例如,我调用 (filter 'evenp '(0 1 2 3)) 并返回 (NIL 1 NIL 3)。但这正是我的问题。我该怎么做才能返回 (1 3)

(defun filter (f x)
(setq h (mapcar #'(lambda (x1)
(funcall f x1))
x))
(mapcar #'(lambda (a b)
(cond ((null a) b)))
h x))

即问题就在这里:(lambda (a b) (cond ( (null a) b) ) ) 在我的 cond 我没有 t 或 else 语句,所以它不应该就此停止而不返回 nil 吗?如果 (cond ( (null a) b) ) 不满足,我如何让它“返回”任何内容,甚至不返回 nil

非常感谢。 :)

最佳答案

基于 this question它将是:

(remove-if #'evenp '(0 1 2 3))

关于LISP 处理讨厌的 NIL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com