練習問題 1.6.1
以下の関数に適切な多相型を与えよ.
const x y = x
subst f g x = f x (g x)
apply f x = f x
flip f x y = f y x
import Prelude hiding (const,flip)
const :: a -> (b -> a)
const x y = x
subst :: (a -> b -> c) -> (a -> b) -> (a -> c)
subst f g x = f x (g x)
apply :: (a -> b) -> (a -> b)
apply f x = f x
flip :: (a -> b -> c) -> (b -> a -> c)
flip f x y = f y x
N.B.
constおよび
flipは
Preludeで定義されているので,これらを隠蔽するために
hiding指定して
Preludeをインポートする.