在Scheme中定义xor

时间:2014-11-26 04:53:54

标签: scheme

如何定义函数xor,其中参数的数量可以是从0到n的任何位置。

(xor true true true true) -> false
(xor true false false false true) -> true

等......

1 个答案:

答案 0 :(得分:0)

这是一个骨架解决方案:

(define (xor . vals)
  (define (inner vals)
    (cond ((null? vals) <???>)
          ((null? (cdr vals)) <???>)   ;; optional optimisation
          ((car vals) (not <???>))
          (else <???>)))
  (inner vals))

弄清楚所有<???>是什么。