X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Flablgtk%2Flablgtk_20001129-0.1.0%2Fapplications%2Fbrowser%2Flist2.ml;fp=helm%2FDEVEL%2Flablgtk%2Flablgtk_20001129-0.1.0%2Fapplications%2Fbrowser%2Flist2.ml;h=0d7798a6aa6b575191816a74e9673fc480103112;hb=7aa91a2cd4497f68ebf5b9dd85b5f2c791f738a1;hp=0000000000000000000000000000000000000000;hpb=044a71416237d8e2b575678b5f49b8c9380ca409;p=helm.git diff --git a/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/list2.ml b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/list2.ml new file mode 100644 index 000000000..0d7798a6a --- /dev/null +++ b/helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/applications/browser/list2.ml @@ -0,0 +1,25 @@ +(* $Id$ *) + +let rec cut l ~len = + if len <= 0 then [], l else + match l with + a::l -> + let l1, l2 = cut l ~len:(len-1) in + a::l1, l2 + | [] -> + invalid_arg "cut_list" + +let rec chop l ~len = + if l = [] then [] else + let l1, l2 = + try cut_list l ~len + with Invalid_argument _ -> l, [] + in + l1 :: chop l2 ~len + + +let rec iteri_aux ~f:f ~i = function + [] -> () + | a::l -> f ~i a; iteri_aux ~f:f ~i:(i+1) l + +let iteri = iteri_aux ~i:0