遅延リスト処理用のOCamlライブラリは何ですか?
-
05-07-2019 - |
質問
レイジーリスト処理を提供するOCamlライブラリは何ですか?私はこれらの線に沿って何かを探しています:
type 'a lazy_list = (*'*)
| Nil
| Cons of 'a * 'a lazy_list lazy_t
let from f =
let rec gen n =
lazy
(
match f n with
| Some x ->
Cons (x, gen (n + 1))
| None ->
Nil
)
in
gen 0
Stream
タイプと backtracking Camlp4パーサーの構文糖衣との統合は良いでしょう。
解決
Ocamlバッテリーには、遅延リストモジュール、 to_stream
関数をチェックしてください。バックトラッキングについては、Stream.tがあるので、camlp4のストリームパーサーを調べることができます。
他のヒント
また、私の OCaml Network Application Environment <には Cf_seq
という遅延リストモジュールがあります Core Foundation。実際、私は機能的なデータ構造のパスル全体を書きました。すべて2条項のBSDライセンスで利用できます。お楽しみください。
更新:コードの名前が&quot; Oni &quot;に変更されました。そして、現在はBitBucketでホストされています。 GODI パッケージを使用することもできます。
所属していません StackOverflow