繁体   English   中英

检查列表或子列表中的项目

[英]Check if the item in list or sub-list

我想使用检查功能检查项目是否在列表或子列表中。 但是错误确实使我感到困惑。 有人可以告诉我我的代码有什么问题吗?

(define check
 (lambda(item lis)
  (cond((null? lis) #f)
       (else(if(pair? (car lis)) 
               (if(check item (car lis)) #t (check item (cdr lis))) 
               (if(equal? item (car list)) #t (check item (cdr lis))))))))


> (check 'a '(a b))
. . car: contract violation
  expected: pair?
  given: #<procedure:list>

您在这里有错字:

(equal? item (car list))

它应该是:

(equal? item (car lis))

请注意, list是一个过程,代码中的参数称为lis

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM