我主要是一个 C++(因此是一个 OO/命令式)程序员,我发现在条件语句中每次评估只能有一个语句,例如功能语言 Scheme 中的 if 语句,这很奇怪。
例如:
(let ((arg1 0) (arg2 1))
(if (> arg1 arg2)
arg1
arg2)))
错误的例子:
(let ((arg1 0) (arg2 1))
(if (> arg1 arg2)
(arg1 (display "cool"))
(arg2 (display "not cool"))))
给我一个类型的错误“程序应用程序:预期的程序,给定:2;参数是:#void”
这可以通过将该条件语句放入已定义函数的主体内的不同语句中来解决,例如,条件语句的主体每次都有单独的语句,如下所示:
(if (condition) statement1a statement2a)
(if (condition) statement1b statement2b)
等等...
不用说,它不太实用。更不用说重复的代码开销了。
我在这里遗漏了什么还是真的没有其他办法?