方案错误对象不适用

时间:2014-10-09 20:06:39

标签: scheme

我正在编写一个Scheme函数,用于检测单词是否在单词列表中。我的代码使用if语句和memq来返回#t或#f。但是,有些事情导致第一个参数返回该对象不适用的错误。

(define in?                                                                     
  (lambda (y xs)                                                                
    ((if (memq( y xs )) #t #f)))) 

1 个答案:

答案 0 :(得分:0)

括号很重要:

(define in?                                                                     
  (lambda (y xs)                                                                
    (if (memq y xs) #t #f)))

所以

  • 您在if
  • 之前有双括号
  • 您将memq参数放在括号中
顺便说一下,您也可以将其表达为

(define in?                                                                     
  (lambda (y xs)                                                                
    (and (memq y xs) #t)))