Common lisp CLISP'出现了一些问题;s嵌套列表和lambda表达式
CommonLisp中的嵌套列表真让我困惑。问题是: 通过使用递归,让Common lisp CLISP'出现了一些问题;s嵌套列表和lambda表达式,common-lisp,clisp,Common Lisp,Clisp,CommonLisp中的嵌套列表真让我困惑。问题是: 通过使用递归,让(嵌套列表“b”(a(bc)d))返回t 如果第一个参数出现在第二个参数中(可能是 嵌套列表),否则为nil。 我尝试了查找,但它仅在第一个参数为'(b c)时有效。 我把目光转向兰姆达的表情。我想把第二个弄平 参数,然后使用eq比较参数 (defun nested-list (x y) (cond ((null y) ()) (t (append (lambda (flatten) (f
(嵌套列表“b”(a(bc)d))
返回t
如果第一个参数出现在第二个参数中(可能是
嵌套列表),否则为nil
。
我尝试了查找
,但它仅在第一个参数为'(b c)
时有效。
我把目光转向兰姆达的表情。我想把第二个弄平
参数,然后使用eq
比较参数
(defun nested-list (x y)
(cond
((null y) ())
(t (append (lambda (flatten) (first y))
然后我被卡住了。尽管我读了很多关于lambda的东西
我还是很困惑。我不知道什么时候能回忆起它
我需要,我知道funcall函数,但你知道我就是不能得到
信息技术我刚学了5天的通用口齿不清,希望你能给我一个机会
暗示。非常感谢 首先,除非您错误地键入了
if
而不是iff
,否则问题很小,只需返回t
,您就完成了:-)
认真地说,当您需要使用递归解决问题时,想法通常很简单:
NIL
T
所以基本上1和2是普通的情况;3和4是解决问题的更简单版本的情况。该函数的名称非常糟糕。它应该是类似于
tree-contains-p
。非常感谢,我认为我如何处理这个问题还不清楚。尽管我仔细阅读了你的建议,但我还是被代码缠住了。就像我知道如何计划,但不知道如何正确实施一样