gpt4 book ai didi

list - LISP 需要一些帮助来解决一个 LIST 练习

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:47 25 4
gpt4 key购买 nike

这是我必须做的!我有很多列表,我必须返回没有整数的列表。

(functInt '(f 3 (v) (((7))) n ()))

-------->

(f (v) ((())) n ())

这是我的代码:

(defun functInt (list)
(cond ((atom list) (if (not(integerp list)) list))
((null (cdr list)) (functInt (car list)))
(T (cons (functInt (car list)) (functInt (cdr list))))))

但我得到的是 (F NIL V NIL N)如何更正我的代码以获得我想要的输出?

最佳答案

其中一个问题是

(if (not (integerp list)) list)

list 是整数时返回 nil,因此您要用 nil 替换整数。

我认为获得此权利的唯一方法是假设没有人会在非列表值上调用您的函数。然后你可以改写成这样

(defun functInt (x)
(cond ((atom x) x)
((integerp (car x)) FOO)
(t BAR)))

我将替换 FOOBAR 的表达式作为练习。 (functInt 3) 仍将返回 3,但这违反了函数的约定。

请注意 (atom nil) 为真,因此您不需要 (null x) 的特殊情况。

关于list - LISP 需要一些帮助来解决一个 LIST 练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8679340/

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