哪些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
与回溯 Camlp4解析器的Stream
类型和语法糖的集成将会很不错。
答案 0 :(得分:6)
Ocaml Batteries有lazy list module,请查看to_stream
功能。至于回溯,你可以查看camlp4的流解析器,因为你有一个Stream.t。
答案 1 :(得分:2)
此外,我的OCaml Network Application Environment核心基金会中有一个名为Cf_seq
的惰性列表模块。事实上,我写了一整套功能数据结构。这些都是根据2条款BSD许可证提供的。享受。