質問

レイジーリスト処理を提供する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 パッケージを使用することもできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top