我想写:
(cond ((< x 3) (and (display "Error Message") (exit)))
(else (foo y))
换句话说,我想显示一条消息,并在满足条件时终止。我该怎么做呢?有这样的退出函数吗?
提前感谢!
SRFI 23提供error
。对于错误条件,这样做比调用exit
要好得多,因为它使其他代码可以捕获错误并进行错误处理。(无论如何,有些实现将exit
作为例外实现,但这并不影响我使用error
更合适的观点。)
SRFI 34提供了一个更完整的异常工具,甚至可以比error
更合适。
R5RS方案和之前的版本不需要退出函数,尽管大多数实现都提供了一个。R6RS方案确实需要一个退出函数。即使没有退出函数,通常也可以安排程序的控制流,使其在完成时"从结束处掉下来"。如果您需要一个出口,而您的实现没有提供,您可以使用call/cc构建自己的出口。
ChezScheme I类型:
(exit)
这比我第一次退出vim花的时间要短得多。