我想看看方案中是否有“真实”的东西,我可以做以下几件事:
(lambda (x) (= x #t)))然而,这给我带来了某种错误,我转而使用如下(目前)这样的方法:
(lambda (x) x)在类似于python的方案中,最接近isTrue函数的是什么:
>>> bool(1)
True
>>> bool(0)
False另外,为什么像(= 4 #t)这样的事情不起作用呢?=只对方案中的数字类型工作吗?
发布于 2021-06-09 20:37:55
为了测试Racket中的某个东西是否是false,我们有false?谓词,但奇怪的是,我们没有true?谓词--尽管它很容易实现:
(define (true? exp)
(not (false? exp)))如果您想知道,在Scheme中唯一的false值是#f,其他一切都被认为是真实的。您是对的,=过程只用于数字;如果需要更一般的等式比较,只需使用equals?。这一点现在起作用了:
(equal? 4 #t)
=> #f显然,4并不等于#t,但是无论如何,4 (或任何其他数字)被认为是真实的。
(if 4 'ok 'nope)
=> 'okhttps://stackoverflow.com/questions/67910822
复制相似问题