球拍中的布尔值
Boolean in Racket
我运行考试,总有一个考试过不了。我尝试了每一种排列。有没有更简单的方法,比如尝试不 returning 一个简单的布尔值,也许 return 取决于输入?
这是我的代码:
(check-expect (same? #true #true) #true)
(check-expect (same? #false #false) #true)
(check-expect (same? #true #false) #false)
(define (same? b1 b2)
(cond
[ b1 #t ]
[ b2 #f ]
[else #t]))
那个same?
定义是错误的。要通过所有测试用例,您可以使用 equal?
:
(define same? equal?) ; <-- some languages, e.g. BSL don't allow this way
(define (same? b1 b2)
(equal? b1 b2))
或者,如果你不被允许使用equal?
,你可以这样写:
(define (same? b1 b2)
(if b1 (if b2 #true #false)
(if b2 #false #true)))
(在这个解决方案中,我希望 b1
和 b2
是布尔值,没有别的。)
我运行考试,总有一个考试过不了。我尝试了每一种排列。有没有更简单的方法,比如尝试不 returning 一个简单的布尔值,也许 return 取决于输入?
这是我的代码:
(check-expect (same? #true #true) #true)
(check-expect (same? #false #false) #true)
(check-expect (same? #true #false) #false)
(define (same? b1 b2)
(cond
[ b1 #t ]
[ b2 #f ]
[else #t]))
那个same?
定义是错误的。要通过所有测试用例,您可以使用 equal?
:
(define same? equal?) ; <-- some languages, e.g. BSL don't allow this way
(define (same? b1 b2)
(equal? b1 b2))
或者,如果你不被允许使用equal?
,你可以这样写:
(define (same? b1 b2)
(if b1 (if b2 #true #false)
(if b2 #false #true)))
(在这个解决方案中,我希望 b1
和 b2
是布尔值,没有别的。)