如何在函数式语言中实现break

时间:2015-11-26 15:45:09

标签: loops break language-design

嗨,我想知道什么是最好的"在语言中实现break和continue的方法,其中循环语句例如。 while和for,if语句实际上是函数。 所以我认为break可以抛出exeption,类似于Ruby,但while-function会自动捕获它并停止循环。

示例:

i = 0
while true, do
            i +
            if i > 10, break
end

有......端块是时间的参数,并且如果代码参数也是中断。

PS。抱歉语言:/

1 个答案:

答案 0 :(得分:0)

如果您有可用的区分联合(或类似功能,如OOP继承),您可以使用:表达式不仅可以返回正常返回值,还可以返回break和{{的特殊值1}}。

或者,使用ML语法(其中continue是表达式的类型):

'a

如果表达式未返回任何内容,则可以将type 'a expression_result = Break | Continue | Return of 'a 类型用作unit