equal
deleted
inserted
replaced
111 val take_suffix: ('a -> bool) -> 'a list -> 'a list * 'a list |
111 val take_suffix: ('a -> bool) -> 'a list -> 'a list * 'a list |
112 val prefixes1: 'a list -> 'a list list |
112 val prefixes1: 'a list -> 'a list list |
113 val prefixes: 'a list -> 'a list list |
113 val prefixes: 'a list -> 'a list list |
114 val suffixes1: 'a list -> 'a list list |
114 val suffixes1: 'a list -> 'a list list |
115 val suffixes: 'a list -> 'a list list |
115 val suffixes: 'a list -> 'a list list |
|
116 val trim: ('a -> bool) -> 'a list -> 'a list |
116 |
117 |
117 (*integers*) |
118 (*integers*) |
118 val upto: int * int -> int list |
119 val upto: int * int -> int list |
119 val downto: int * int -> int list |
120 val downto: int * int -> int list |
120 val radixpand: int * int -> int list |
121 val radixpand: int * int -> int list |
585 fun prefixes xs = [] :: prefixes1 xs; |
586 fun prefixes xs = [] :: prefixes1 xs; |
586 |
587 |
587 fun suffixes1 xs = map rev (prefixes1 (rev xs)); |
588 fun suffixes1 xs = map rev (prefixes1 (rev xs)); |
588 fun suffixes xs = [] :: suffixes1 xs; |
589 fun suffixes xs = [] :: suffixes1 xs; |
589 |
590 |
|
591 fun trim pred = take_prefix pred #> #2 #> take_suffix pred #> #1; |
590 |
592 |
591 |
593 |
592 (** integers **) |
594 (** integers **) |
593 |
595 |
594 (* lists of integers *) |
596 (* lists of integers *) |