aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2006-09-12 08:11:57 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2006-09-12 08:11:57 +0000
commit3b8a00ab56de51d59cc14ef548929403365269e8 (patch)
treefbd908f5711318ed98d41a767bba35ed41c4f3f8
parent15633ba5638b9179f520adbdf55288dc0c2c5d65 (diff)
Ajout array_distinct
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9130 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--lib/util.ml11
-rw-r--r--lib/util.mli1
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index e18d13cb6..ed3993410 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -651,6 +651,17 @@ let array_fold_map2' f v1 v2 e =
in
(v',!e')
+let array_distinct v =
+ try
+ for i=0 to Array.length v-1 do
+ for j=i+1 to Array.length v-1 do
+ if v.(i)=v.(j) then raise Exit
+ done
+ done;
+ true
+ with Exit ->
+ false
+
(* Matrices *)
let matrix_transpose mat =
diff --git a/lib/util.mli b/lib/util.mli
index 52cd24127..7e6c3316f 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -175,6 +175,7 @@ val array_map_left_pair : ('a -> 'b) -> 'a array -> ('c -> 'd) -> 'c array ->
val array_fold_map' : ('a -> 'c -> 'b * 'c) -> 'a array -> 'c -> 'b array * 'c
val array_fold_map2' :
('a -> 'b -> 'c -> 'd * 'c) -> 'a array -> 'b array -> 'c -> 'd array * 'c
+val array_distinct : 'a array -> bool
(*s Matrices *)