src/Pure/library.ML
changeset 14968 9db3d2be8cdf
parent 14926 d2baf4b79424
child 14981 e73f8140af78
--- a/src/Pure/library.ML	Fri Jun 18 20:07:31 2004 +0200
+++ b/src/Pure/library.ML	Fri Jun 18 20:07:42 2004 +0200
@@ -770,10 +770,15 @@
 fun foldl_string f (x0, str) =
   let
     val n = size str;
-    fun fold (x, i) = if i < n then fold (f (x, String.substring (str, i, 1)), i + 1) else x
+    fun fold (x, i) =
+      if i < n then fold (f (x, String.substring (str, i, 1)), i + 1) else x;
   in fold (x0, 0) end;
 
-fun exists_string pred str = foldl_string (fn (b, s) => b orelse pred s) (false, str);
+fun exists_string pred str =
+  let
+    val n = size str;
+    fun ex i = i < n andalso (pred (String.substring (str, i, 1)) orelse ex (i + 1));
+  in ex 0 end;
 
 (*enclose in brackets*)
 fun enclose lpar rpar str = lpar ^ str ^ rpar;