equal
deleted
inserted
replaced
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*) |