equal
deleted
inserted
replaced
79 val hd: 'a list -> 'a |
79 val hd: 'a list -> 'a |
80 val tl: 'a list -> 'a list |
80 val tl: 'a list -> 'a list |
81 val cons: 'a -> 'a list -> 'a list |
81 val cons: 'a -> 'a list -> 'a list |
82 val single: 'a -> 'a list |
82 val single: 'a -> 'a list |
83 val append: 'a list -> 'a list -> 'a list |
83 val append: 'a list -> 'a list -> 'a list |
|
84 val rev_append: 'a list -> 'a list -> 'a list |
84 val apply: ('a -> 'a) list -> 'a -> 'a |
85 val apply: ('a -> 'a) list -> 'a -> 'a |
85 val foldl: ('a * 'b -> 'a) -> 'a * 'b list -> 'a |
86 val foldl: ('a * 'b -> 'a) -> 'a * 'b list -> 'a |
86 val foldr: ('a * 'b -> 'b) -> 'a list * 'b -> 'b |
87 val foldr: ('a * 'b -> 'b) -> 'a list * 'b -> 'b |
87 val foldr1: ('a * 'a -> 'a) -> 'a list -> 'a |
88 val foldr1: ('a * 'a -> 'a) -> 'a list -> 'a |
88 val foldl_map: ('a * 'b -> 'a * 'c) -> 'a * 'b list -> 'a * 'c list |
89 val foldl_map: ('a * 'b -> 'a * 'c) -> 'a * 'b list -> 'a * 'c list |
451 fun cons x xs = x :: xs; |
452 fun cons x xs = x :: xs; |
452 fun single x = [x]; |
453 fun single x = [x]; |
453 |
454 |
454 fun append xs ys = xs @ ys; |
455 fun append xs ys = xs @ ys; |
455 |
456 |
|
457 (* tail recursive version *) |
|
458 fun rev_append [] ys = ys |
|
459 | rev_append (x :: xs) ys = rev_append xs (x :: ys); |
|
460 |
456 fun apply [] x = x |
461 fun apply [] x = x |
457 | apply (f :: fs) x = apply fs (f x); |
462 | apply (f :: fs) x = apply fs (f x); |
458 |
463 |
459 |
464 |
460 (* fold *) |
465 (* fold *) |