3

有哪些提供惰性列表处理的 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

与用于回溯StreamCamlp4 解析器的类型和语法糖集成会很好。

4

2 回答 2

6

Ocaml Batteries有一个惰性列表模块,查看该to_stream功能。至于回溯,既然您有 Stream.t ,您就可以查看camlp4的流解析器。

于 2009-09-10T15:51:24.737 回答
2

Cf_seq此外,在我的OCaml 网络应用程序环境核心基础中调用了一个惰性列表模块。事实上,我写了一整套函数式数据结构。这一切都在 2 条款 BSD 许可下可用。享受。

更新:代码已重命名为“ Oni ”,现在托管在 BitBucket 上。你也可以使用GODI包。

于 2009-10-27T21:03:51.390 回答