首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >传递布尔函数的适当方法

传递布尔函数的适当方法
EN

Stack Overflow用户
提问于 2021-06-09 19:49:25
回答 1查看 156关注 0票数 2

我想看看方案中是否有“真实”的东西,我可以做以下几件事:

代码语言:javascript
运行
复制
(lambda (x) (= x #t)))

然而,这给我带来了某种错误,我转而使用如下(目前)这样的方法:

代码语言:javascript
运行
复制
(lambda (x) x)

在类似于python的方案中,最接近isTrue函数的是什么:

代码语言:javascript
运行
复制
>>> bool(1)
True
>>> bool(0)
False

另外,为什么像(= 4 #t)这样的事情不起作用呢?=只对方案中的数字类型工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-09 20:37:55

为了测试Racket中的某个东西是否是false,我们有false?谓词,但奇怪的是,我们没有true?谓词--尽管它很容易实现:

代码语言:javascript
运行
复制
(define (true? exp)
  (not (false? exp)))

如果您想知道,在Scheme中唯一的false值是#f,其他一切都被认为是真实的。您是对的,=过程只用于数字;如果需要更一般的等式比较,只需使用equals?。这一点现在起作用了:

代码语言:javascript
运行
复制
(equal? 4 #t)
=> #f

显然,4并不等于#t,但是无论如何,4 (或任何其他数字)被认为是真实的。

代码语言:javascript
运行
复制
(if 4 'ok 'nope)
=> 'ok
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67910822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档