gpt4 book ai didi

functional-programming - 方案尝试检查列表中的单词

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

我有几个函数。

 (define adjs '(black brown fast hairy hot quick red slow))
(define adj?
(lambda (a) (if (member a adjs) #t #f)
)


(define OK
(lambda (x)
(cond
((equal? x()) #t)
((equal? adj? (car x)) OK(cdr x))
((else x #f))
)
)
)

函数adj?正在检查输入是否是 adjs 中形容词列表的一部分。

我试图用 OK 函数做的是用户将输入一个列表并让该列表通过 adj 运行?查看它是否是 adjs 列表的一部分。

当我运行函数时会发生什么,我得到一个错误返回,说我输入了“X”个参数,而函数只需要两个。为什么?

最佳答案

括号有问题。有些是不必要的,有些是缺失的,例如当您递归调用 OK 过程时,或者以您调用 adj? 的方式 - 请记住,在 Scheme 中我们调用这样的过程:(f x),而不是这样的:f(x)。此外,递归的基本情况似乎不正确,并且 else 子句使用不正确。试试这个:

(define adj?
(lambda (a)
(if (member a adjs) #t #f)))

(define OK
(lambda (x)
(cond
((null? x) #t)
((adj? (car x)) (OK (cdr x)))
(else #f))))

关于functional-programming - 方案尝试检查列表中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26307237/

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