今日の自作関数
今日は,curry関数,uncurry関数の自作に挑戦.
先ずは,curryから.
curry' :: ((a,b) -> c) -> a -> b -> c curry' f a b = f (a,b)
あぁ,なんかそのまんまじゃん.
hugsで実行して見る.
Main> curry' fst 1 2 1 Main> curry' snd 1 2 2
まぁちゃんと動いてるかな.
次はuncurry.
uncurry' :: (a -> b -> c) -> (a,b) -> c uncurry' f (a,b) = f a b
はぅう,やっぱりそのまんまじゃないかっ.
hugsで実行.
Main> uncurry' (+) (1,2) 3 Main> uncurry' (++) ("hello ","world") "hello world"
動いてくれてるので嬉しい.そりゃ動いてくれなきゃ流石に困る.
もっとエレガントなやり方はあるのかしら.