]> matita.cs.unibo.it Git - pkg-cerco/acc-trusted.git/blob - extracted/untrusted/ocamlList.ml
Imported Upstream version 0.1
[pkg-cerco/acc-trusted.git] / extracted / untrusted / ocamlList.ml
1 let rec rev_append l1 l2 =
2   match l1 with
3     [] -> l2
4   | a :: l -> rev_append l (a :: l2)
5
6 let rev l = rev_append l []
7
8 let find_all p =
9   let rec find accu = function
10   | [] -> rev accu
11   | x :: l -> if p x then find (x :: accu) l else find accu l in
12   find []
13
14 let filter = find_all
15
16 let rec map f = function
17     [] -> []
18   | a::l -> let r = f a in r :: map f l
19
20 let rec iter f = function
21     [] -> ()
22   | a::l -> f a; iter f l
23
24 let rec fold_right f l accu =
25   match l with
26     [] -> accu
27   | a::l -> f a (fold_right f l accu)