Pergunta

bibliotecas que OCaml estão lá fora, que fornecem manipulação de lista preguiçoso? Eu estou procurando algo ao longo destas linhas:

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

A integração com o tipo Stream e açúcar sintático para retrocesso analisadores camlp4 seria bom.

Foi útil?

Solução

Ocaml Baterias tem uma preguiçoso módulo lista , veja a função to_stream. Quanto retrocesso, você pode olhar para analisadores de fluxo de camlp4 agora que você tem um Stream.t.

Outras dicas

Além disso, há um módulo lista preguiçoso chamado Cf_seq na minha OCaml ambiente de aplicativo de rede Foundation Core. Na verdade, eu escrevi um passle inteiro de estruturas de dados funcionais. Tudo isso está disponível sob uma licença BSD 2-clause. Desfrute.

Atualizar : o código foi renomeado " Oni " e é agora hospedado no BitBucket. Você também pode usar o href="http://godi.camlcity.org/godi/toc/toc-3.11.html" rel="nofollow noreferrer"> pacote para ele.

scroll top