如何提前终止计划程序?(有退出吗?)

hal*_*l88 5 scheme exit

我想要像:

(cond ((< x 3) (and (display "Error Message") (exit)))

(else (foo y))

换句话说,我想显示一条消息,并在满足条件时终止.我怎样才能做到这一点?有这样的退出功能吗?

提前致谢!

Chr*_*ung 7

SRFI 23提供error.对于错误条件,这样做比调用要好得多exit,因为它使其他代码可以捕获错误并进行错误处理.(有些实现exit无论如何都是作为例外实现的,但这并不意味着使用error更合适.)

SRFI 34提供了更完整的异常工具,甚至可以更合适error.


use*_*810 4

R5RS 方案和之前的版本不需要退出函数,尽管大多数实现都提供退出函数。R6RS方案确实需要退出功能。即使没有退出函数,通常也可以安排程序的控制流,使其在完成时“从末尾脱落”。如果您需要退出而您的实现没有提供退出,您可以使用 call/cc 构建您自己的退出。