X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fmathql%2FavsUtil.ml;h=1f01997722c17e646a1b44aac9dc8859a1c864a5;hb=17c63a69e22b8186e14dd4d8098574b566fedf14;hp=65bcadb15e3c46d8900cd702b7235dfd19610a84;hpb=381006cf8b418cfdeaf145ab7df9e8f2b19ae2e6;p=helm.git diff --git a/helm/ocaml/mathql/avsUtil.ml b/helm/ocaml/mathql/avsUtil.ml index 65bcadb15..1f0199772 100644 --- a/helm/ocaml/mathql/avsUtil.ml +++ b/helm/ocaml/mathql/avsUtil.ml @@ -52,24 +52,25 @@ let val_true = avs_of_bool true (* iterators ****************************************************************) let grp_iter f al = - List.fold_left (fun s a -> I.grp_union s (f a)) I.grp_empty al + List.fold_left (fun s a -> I.grp_union s (f a)) I.grp_empty (List.rev al) let grp_iter2 f al bl = - List.fold_left2 (fun s a b -> I.grp_union s (f a b)) I.grp_empty al bl + List.fold_left2 (fun s a b -> I.grp_union s (f a b)) + I.grp_empty (List.rev al) (List.rev bl) -let iter f al = List.fold_left (fun s a -> I.union s (f a)) I.empty al - -let append_iter f al = List.fold_left (fun s a -> I.append (f a) s) I.empty al +let iter f al = List.fold_left (fun s a -> I.union s (f a)) + I.empty (List.rev al) (* other ********************************************************************) let grp_make_x p vl = grp_iter (I.grp_make p) vl let x_grp_make_x p rs = - let aux g s _ = I.grp_make p s in + let aux g s _ = I.grp_union g (I.grp_make p s) in I.iter aux I.grp_empty rs -let make_x s gl = iter (I.make s) gl +let make_x s gl = + if gl = [] then avs_of_string s else iter (I.make s) gl let count v = I.iter (fun n _ _ -> succ n) 0 v