]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/browser/list2.ml
Initial revision
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20000829-0.1.0 / applications / browser / list2.ml
1 (* $Id$ *)
2
3 let rec cut l ~len =
4   if len <= 0 then [], l else
5   match l with
6     a::l ->
7       let l1, l2 = cut l ~len:(len-1) in
8       a::l1, l2
9   | [] ->
10       invalid_arg "cut_list"
11
12 let rec chop l ~len =
13   if l = [] then [] else
14   let l1, l2 =
15     try cut_list l ~len
16     with Invalid_argument _ -> l, []
17   in
18   l1 :: chop l2 ~len
19
20
21 let rec iteri_aux ~f:f ~i = function
22     [] -> ()
23   | a::l -> f ~i a; iteri_aux ~f:f ~i:(i+1) l
24
25 let iteri = iteri_aux ~i:0