我想要像:
(cond ((< x 3) (and (display "Error Message") (exit)))
(else (foo y))
换句话说,我想显示一条消息并在满足条件时终止。我怎样才能做到这一点?有这样的退出功能吗?
提前致谢!
答案 0 :(得分:6)
SRFI 23提供了error
。对于错误条件,这样做比调用exit
好得多,因为它使其他代码可以捕获错误并进行错误处理。 (有些实现实现了exit
作为例外,但这并不意味着使用error
更合适。)
SRFI 34提供了更完整的异常工具,可能比error
更合适。
答案 1 :(得分:3)
R5RS Scheme和先前版本不需要退出功能,但大多数实现都提供了退出功能。 R6RS Scheme确实需要退出功能。即使没有退出功能,通常也可以安排程序的控制流程,使其在完成时“脱离结束”。如果你需要一个退出而你的实现没有提供退出,你可以使用call / cc。
建立自己的退出答案 2 :(得分:1)
在ChezScheme上,我输入:
(exit)
我花的时间比第一次退出vim要短得多。