2015-11-26 47 views
0

嗨,我想知道什么是“最好”的方式来实现中断和语言继续,其中循环语句例如。 while和for,if语句实际上是函数。 所以我认为中断可以抛出类似Ruby的异常,但while函数会自动捕获它并停止循环。如何实现类似功能的语言破解

例如:

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

有do..end块是同时PARAM也突破是,如果代码parametre。

ps。遗憾的语言:/

+0

'return'? –

+0

作品吗?如果功能eval块中断了,怎么会知道有中断?或者,如果return语句在if中,那么只打破if函数的评估? – Viola

回答

0

如果您识别联合(或类似的功能,像OOP继承)可用,您可以使用:一个表达式并可能为break并返回不只是正常的返回值,还特别值continue

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

type 'a expression_result = Break | Continue | Return of 'a 

如果表达不返回任何东西,你可以使用unit类型'a

相关问题