src/Pure/library.ML
changeset 73763 eccc4a13216d
parent 73569 c5512fde6ad1
child 73860 dfac078e5444
equal deleted inserted replaced
73762:14841c6e4d5f 73763:eccc4a13216d
   130   (*strings*)
   130   (*strings*)
   131   val nth_string: string -> int -> string
   131   val nth_string: string -> int -> string
   132   val fold_string: (string -> 'a -> 'a) -> string -> 'a -> 'a
   132   val fold_string: (string -> 'a -> 'a) -> string -> 'a -> 'a
   133   val exists_string: (string -> bool) -> string -> bool
   133   val exists_string: (string -> bool) -> string -> bool
   134   val forall_string: (string -> bool) -> string -> bool
   134   val forall_string: (string -> bool) -> string -> bool
       
   135   val member_string: string -> string -> bool
   135   val first_field: string -> string -> (string * string) option
   136   val first_field: string -> string -> (string * string) option
   136   val enclose: string -> string -> string -> string
   137   val enclose: string -> string -> string -> string
   137   val unenclose: string -> string
   138   val unenclose: string -> string
   138   val quote: string -> string
   139   val quote: string -> string
   139   val cartouche: string -> string
   140   val cartouche: string -> string
   701     fun ex i = i < n andalso (pred (String.substring (str, i, 1)) orelse ex (i + 1));
   702     fun ex i = i < n andalso (pred (String.substring (str, i, 1)) orelse ex (i + 1));
   702   in ex 0 end;
   703   in ex 0 end;
   703 
   704 
   704 fun forall_string pred = not o exists_string (not o pred);
   705 fun forall_string pred = not o exists_string (not o pred);
   705 
   706 
       
   707 fun member_string str s = exists_string (fn s' => s = s') str;
       
   708 
   706 fun first_field sep str =
   709 fun first_field sep str =
   707   let
   710   let
   708     val n = size sep;
   711     val n = size sep;
   709     val len = size str;
   712     val len = size str;
   710     fun find i =
   713     fun find i =