diff options
author | 2006-09-12 08:11:57 +0000 | |
---|---|---|
committer | 2006-09-12 08:11:57 +0000 | |
commit | 3b8a00ab56de51d59cc14ef548929403365269e8 (patch) | |
tree | fbd908f5711318ed98d41a767bba35ed41c4f3f8 | |
parent | 15633ba5638b9179f520adbdf55288dc0c2c5d65 (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.ml | 11 | ||||
-rw-r--r-- | lib/util.mli | 1 |
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 *) |