Diff
Not logged in

Differences From Artifact [a39b25f2bef916f0]:

To Artifact [c411cf72312ff15e]:


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