2017-11-22 4 views
0

要素kから始まる不対要素(再帰を伴う)でma lazylistを埋めようとしています。たとえば、K = 2、リストは[2,3,5,7,9,...]はコードです:Ocamlはlazylistとの一致を使用します

let lgen = 
    let rec gen k = LCons(k, fun() -> gen k (k + 2)) 
    in gen 1;; 

しかし、私は確認することができますどのように要素のk対になっていないですか? (私はここで私はマッチを使用する必要があると思う)。

type 'a llist = LNil | LCons of 'a * (unit -> 'a llist);; 

あなたは、このようなパターンを一致させることができます::怠惰なリストのためのあなたのタイプを想定し

+2

をそれはあなたが「不対」によって何を意味するかは全く明らかではありません。 –

答えて

0

は、このようなものである

let rec lfind e lxs = 
    match lxs with 
    | LNil -> false 
    | LCons(x, _) when x > e -> false 
    | LCons(x, xs) -> if e=x then true else lfind e (xs()) 
    ;; 
関連する問題