2015-11-26 83 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

相關問題