Diff
Not logged in

Differences From Artifact [a39b25f2bef916f0]:

To Artifact [c411cf72312ff15e]:


484 484 <p> 485 485 パターンマッチ失敗時と、"..." という式を実行したときと、再帰が無限に止まらなくなったとき、 486 486 には、Polemy のコードは実行時エラーで終了します……<tt>@value</tt> レイヤならば。 487 487 </p> 488 488 <p> 489 489 ユーザー定義レイヤでは、このような時にも実行時エラーにならず、 490 490 「$(RED $(B ボトム))」という特別な値がリフト関数に渡されます。 491 +(ボトムのリフトに失敗した時は、この再帰停止処理は行われません。無限ループします。) 491 492 組み込みの <tt>_isbot</tt> 関数で、ボトムかどうか判定できます。 492 493 </p> 493 494 <p> 494 495 「再帰が無限に止まらなくなったとき」は、 495 496 ある引数で呼び出された関数が、return するよりも前にまた同じ引数で呼び出されたら、 496 497 ループしていると見なすことで判定しています。 497 498 これを判定する実装の副作用として、ユーザー定義のレイヤでは、関数は全てメモ化されています。