73 lines
980 B
Plaintext
73 lines
980 B
Plaintext
map f = case _ of
|
|
Nil -> Nil
|
|
x:xs -> f x : map f xs
|
|
|
|
|
|
map2 f g xs = map g (map f xs)
|
|
|
|
----------
|
|
map2 f g xs = map g case xs of
|
|
Nil -> Nil
|
|
x:xs -> f x : map f xs
|
|
|
|
----------
|
|
map2 g f xs = case (case ...) ...
|
|
|
|
----------
|
|
map2 f g xs = case xs of
|
|
Nil -> case Nil of
|
|
Nil -> Nil
|
|
x:xs -> f x : map f xs
|
|
x:xs -> case f x : map f xs of
|
|
Nil -> Nil
|
|
x:xs -> g x : map g xs
|
|
|
|
----------
|
|
map2 f g xs = case xs of
|
|
Nil -> Nil
|
|
x:xs -> let
|
|
a = f x
|
|
b = map f xs
|
|
in g a : map g b
|
|
|
|
----------
|
|
map2 f g xs = case xs of
|
|
Nil -> Nil
|
|
x:xs -> g (f x) : map g (map f xs)
|
|
|
|
----------
|
|
map2 f g = case _ of
|
|
x:xs -> g (f x) : map2 f g xs
|
|
Nil -> Nil
|
|
|
|
----------
|
|
map2 f g = case _ of
|
|
x:xs -> (compose g f) x : map2 f g xs
|
|
Nil -> Nil
|
|
|
|
==========
|
|
Unify
|
|
map2 f g a
|
|
with
|
|
map u1 u2
|
|
|
|
u2 = a
|
|
|
|
==========
|
|
Unify
|
|
(compose g f) x
|
|
with
|
|
u1 x
|
|
|
|
u1 = compose g f
|
|
|
|
==========
|
|
Unify
|
|
map2 f g xs
|
|
with
|
|
map (compose g f) xs
|
|
|
|
TRUE
|
|
|
|
map2 = map (compose g f) xs
|