在Scheme中,如何比较两个参数并返回false,如果没有给出

时间:2014-11-20 08:48:11

标签: list comparison scheme racket

我觉得自己无法完成这项工作。 我需要做的就是这样做,如果缺少一个参数,输出应显示false,例如(my-list '(7 6) p) false#f。到目前为止,我尝试了以下null?

(define (my-list list1 list2) (if (null? list2) false

另一个list?

(define (my-list list1 list2) (if (list? list1) false

注意:我有其他比较,这两个与我的其他条件相矛盾,如果我有list?null?,我将无法工作。什么是使这项工作最有效的方法?非常感谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

(define (longer-list list1 list2)
  ; use `or` to check if either condition is true
  (if (or (not (list? list1)) (not (list? list2)))
      false
      <do something else here>))

说明:只需检查两个参数,看看其中一个是一个列表,如果是这样,则返回false。否则,只需在&#34; else&#34;中做任何你想做的事情。条件表达式的一部分。我认为有必要检查其中一个参数是否为null?,如果他们列出的参数大小为零,那么调用{{1在他们身上。