src/Pure/library.ML
changeset 10951 ddb9b820d8a5
parent 10692 6077fd933575
child 11002 e33dfe9bde39
equal deleted inserted replaced
10950:aa788fcb75a5 10951:ddb9b820d8a5
   155   val prefix_lines: string -> string -> string
   155   val prefix_lines: string -> string -> string
   156   val split_lines: string -> string list
   156   val split_lines: string -> string list
   157   val untabify: string list -> string list
   157   val untabify: string list -> string list
   158   val suffix: string -> string -> string
   158   val suffix: string -> string -> string
   159   val unsuffix: string -> string -> string
   159   val unsuffix: string -> string -> string
       
   160   val replicate_string: int -> string -> string
   160 
   161 
   161   (*lists as sets*)
   162   (*lists as sets*)
   162   val mem: ''a * ''a list -> bool
   163   val mem: ''a * ''a list -> bool
   163   val mem_int: int * int list -> bool
   164   val mem_int: int * int list -> bool
   164   val mem_string: string * string list -> bool
   165   val mem_string: string * string list -> bool
   769     if prfx_len >= 0 andalso implode (drop (prfx_len, cs)) = sfx then
   770     if prfx_len >= 0 andalso implode (drop (prfx_len, cs)) = sfx then
   770       implode (take (prfx_len, cs))
   771       implode (take (prfx_len, cs))
   771     else raise LIST "unsuffix"
   772     else raise LIST "unsuffix"
   772   end;
   773   end;
   773 
   774 
       
   775 fun replicate_string 0 _ = ""
       
   776   | replicate_string 1 a = a
       
   777   | replicate_string k a =
       
   778       if k mod 2 = 0 then replicate_string (k div 2) (a ^ a)
       
   779       else replicate_string (k div 2) (a ^ a) ^ a;
       
   780 
   774 
   781 
   775 
   782 
   776 (** lists as sets **)
   783 (** lists as sets **)
   777 
   784 
   778 (*membership in a list*)
   785 (*membership in a list*)