For Gauche 0.9.5


Next: , Previous: , Up: ライブラリモジュール - R7RS統合   [Contents][Index]

10.12 scheme.lazy - R7RS遅延評価

Module: scheme.lazy

R7RSの(scheme inexact)ライブラリの束縛をエクスポートします。 R7RSプログラムからは、エクスポートされた束縛は (import (scheme inexact))とすることで使えます。

以下の束縛は、Gauche組み込みです (Delayとforceとlazy参照)。

delay force promise?
Special Form: delay-force promise

[R7RS] これはGauche組み込みのlazyと同じです。 使い方についてはDelayとforceとlazyの議論を参照してください。

Function: make-promise obj

[R7RS] objがプロミスならそのまま返されます。そうでなければ、 forceされた時にobjが返されるようなプロミスが返されます。 これは手続きなので、objmake-promiseを呼び出す前に 評価されてしまいます。従って遅延評価には使えませんが、 確実にプロミスを得たい場合に使えます。

forceがプロミスのみを取るような実装ではこの手続きは重要です。 ポータブルなコードは、forceに渡すものがプロミスであることを 確実にしたい場所でこの手続きを使うようにしてください。

Gaucheのforceはプロミスでない値も取れるので、 Gauche専用のコードを書いている時はこの手続きは不要です。


Next: , Previous: , Up: ライブラリモジュール - R7RS統合   [Contents][Index]