RebolとRedの両方に、2 つの PARSE キーワードがあります: break
andreject
は同様の動作をします:一致ループ (any、some、while など) から抜け出します。違いは、break
常に 成功をreject
示し、 失敗を示します。文字どおりの意味は知っていますが、2 つのキーワードのどちらを使用すべきかという適切なシナリオがわかりません。
blk: [ 1 #[none] 2 #[none] #[none] 4 5 6 #[none] ]
count: 0
result: parse blk [
any [
remove none! insert 2
if ((count: count + 1) >= 2) break
|
skip
]
]
probe blk ;will get [1 0 2 0 none 4 5 6 none]
probe result ;will get false
probe count ;will get 2
上記のコードでは、break
orのどちらでもreject
同じ結果が得られます。
では、この 2 つのキーワードの違いを教えてくれる人はいますか?