racket - DrRacket:在左括号后需要一个函数
问题描述
它编译正确,但如果我尝试使用该函数,我会收到错误:
函数调用:在左括号后需要一个函数,但收到 1。
(define (euclid a b)
(if (= b 0) a
(if (= a 0) b
(if (> a b) (euclid(- a b) b)
(euclid (a (- b a) ))))))
解决方案
最后一行有一个放错位置的括号。这应该解决它:
(define (euclid a b)
(if (= b 0)
a
(if (= a 0)
b
(if (> a b)
(euclid (- a b) b)
(euclid a (- b a))))))
当您有多个嵌套条件时,最好使用cond
,如下所示:
(define (euclid a b)
(cond ((= b 0) a)
((= a 0) b)
((> a b) (euclid (- a b) b))
(else (euclid a (- b a)))))
推荐阅读
- python - Odoo 13 - 计算字段 - 未按预期工作
- bluetooth-gatt - 未捕获(承诺中):NotSupportedError:GATT 错误未知
- jmeter - 为线程 400 运行 JMeter 时出现 503 错误,是因为服务器问题吗?
- python - 是否可以在 Python 中并行化这个程序(辛普森规则)?
- javascript - React JS:TypeError:无法将 undefined 或 null 转换为对象
- python - 通过 boto3 更新 S3 对象元数据时出现签名错误
- twilio - Twillio 可编程视频如何从客户端 1 通知客户端 2
- android - 如何在 web 模式下将 flutter_web_view 转换为 HtmlElementView
- arrays - Struct C Array 不打印先前的输入
- c - 除了在程序的开头,我在哪里可以在 C 程序中包含头文件 stdio.h?