srfi.216
- SICP用ライブラリ ¶このモジュールは、『計算機プログラムの構造と解釈』(SICP)の練習課題を実装するための いくつかのユーティリティを提供します。
このモジュールを提供する主な目的は、このモジュールに依存している既存のコードの移植性のためです。 SICPの課題をGaucheで解きながら学んでいる場合は、 Gauche-compat-sicp拡張 (https://github.com/shirok/Gauche-compat-sicp)を使うことをおすすめします。 Gauche特有の問題への対応が入っています。
[SRFI-216]{srfi.216
}
過去のある時点から、時間経過によって単調増加する正確な整数を返します。
具体的な値に意味はありませんが、二つのruntime
呼び出しの差を取ることで
相対的な時間経過を比較することができます。
[SRFI-216]{srfi.216
}
nは正の実数でなければなりません。n未満のランダムな非負整数を返します。
nが正確数なら、正確な整数が返ります。 そうでなければ不正確な整数が返ります。
[SRFI-216]{srfi.216
}
与えられたthunkを、スレッドを使って並列に実行します。
全てのthunkの実行が終了したら、未定義の値を返します。
[SRFI-216]{srfi.216
}
引数は変更可能なペアでなければなりません。
そのcar
が#f
なら、それを#t
に変えて#f
を返します。
そうでなければ引数は変更せずに#f
を返します。
この操作はアトミックに行われます。
[SRFI-216]{srfi.216
}
(cons a (delay b))
へと展開されます。car
部分にあたる
aは積極的に評価されることに注意してください。
これはutil.stream
のstream-cons
と異なります
(Stream primitives参照)。SICPはマクロを陽に使わないので、
このオペレータがプリミティブとして用意されている前提で書かれています。
[SRFI-216]{srfi.216
}
空のストリームを表すシングルトンインスタンスです。
これは、次のstream-null?
と一緒に使われなければなりません。
util.stream
のstream-null
と互換性はありません
(Stream primitives参照)。
[SRFI-216]{srfi.216
}
objがthe-empty-stream
であれば#t
を、
そうでなければ#f
を返します。
これはutil.stream
のstream-null?
とは異なります
(Stream primitives参照)。