如何提前终止计划程序? (是否有“出口”?)

问题描述 投票:5回答:3

我想要类似的东西:

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

(else (foo y))

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

提前感谢!

scheme exit
3个回答
7
投票

SRFI 23提供error。对于错误情况,这样做比调用exit好得多,因为这样做可以使其他代码捕获错误并进行错误处理。 (无论如何,有些实现将exit实现为异常,但这并不能使我认为使用error更合适。)

[SRFI 34提供了更完整的异常功能,甚至比error更合适。


4
投票

R5RS方案和以前的版本,不需要退出功能,尽管大多数实现都提供了该功能。 R6RS Scheme确实需要退出功能。即使没有退出功能,通常也可以安排程序的控制流,以使其在完成时仅“掉到头”。如果您需要退出而实现中没有提供退出,则可以使用call / cc构建自己的出口。


0
投票

在ChezScheme上,我输入:

(exit)

我花的时间比第一次退出vim短得多。

© www.soinside.com 2019 - 2024. All rights reserved.