if-statement - 为什么我会收到错误消息:cond:期望有一个带有问题和答案的子句
问题描述
为什么我收到错误:cond: expected a clause with a question and an answer, but found a clause with only one part
?我究竟做错了什么?
基本上,我必须找出判别式是正数还是负数。
(define (has-real-roots? a b c)
(cond
[(positive? (- (square b) (* 4 a c)))]
[else false]))
解决方案
根据文档,表达式中的每个子句都cond
需要两部分:“问题”(条件)和“答案”(要返回的值)。您的代码缺少第一个子句的“答案”部分,在这种情况下返回true
是合适的:
(define (has-real-roots? a b c)
(cond [(positive? (- (square b) (* 4 a c))) true]
[else false]))
但是你真的不需要在cond
这里使用 a ,这更简单并且做同样的事情:
(define (has-real-roots? a b c)
(positive? (- (* b b) (* 4 a c))))
推荐阅读
- r - 如何读入大量与个人 ID 号码匹配的 csvs R
- docker - 如何使用 bazel rules_docker 中的 container_image 或 container_layer 为 empty_dir 定义所有者?
- sql - 如何将两个表连接在一起(一对多关系),但只从第二个表中选择第三个匹配项?
- python - 使用字典获取拼字游戏单词的总分
- javascript - 在函数之外获取变量输出
- python - 使用 sqlalchemy 的带有参数的 IN 条件
- python - 在类中调用对象
- google-earth-engine - 我收到此错误:生成图表时出错:轴 # 0 的数据列不能属于字符串类型
- swiftui - 值更改后条件不触发
- powershell - 从网络文件夹静默安装 msi 和 exe