summaryrefslogtreecommitdiffstats
path: root/perl_checker.src/common.ml
diff options
context:
space:
mode:
Diffstat (limited to 'perl_checker.src/common.ml')
-rw-r--r--perl_checker.src/common.ml11
1 files changed, 11 insertions, 0 deletions
diff --git a/perl_checker.src/common.ml b/perl_checker.src/common.ml
index ee989dc..e30dc20 100644
--- a/perl_checker.src/common.ml
+++ b/perl_checker.src/common.ml
@@ -561,6 +561,8 @@ let rec transpose = function
let rec range min max =
if min >= max then [] else min :: range (min + 1) max
+let sum l = List.fold_left (+) 0 l
+
let rec filter_some_with f = function
| [] -> []
| e :: l ->
@@ -745,6 +747,15 @@ let char_is_number c =
let i = Char.code c in
Char.code '0' <= i && i <= Char.code '9'
+let count_chars_in_string s c =
+ let rec rec_count_chars_in_string from =
+ try
+ let from' = String.index_from s from c in
+ 1 + rec_count_chars_in_string (from' + 1)
+ with
+ Not_found -> 0
+ in rec_count_chars_in_string 0
+
let rec string_forall_with f i s =
try
f s.[i] && string_forall_with f (i+1) s