関数型プログラミング言語Haskell Part18
レス数が900を超えています。1000を超えると表示できなくなるよ。
0910デフォルトの名無しさん
2012/06/24(日) 02:33:01.42パターンが色々あって、変態的なコーディングしてる人たちは色々知ってるってだけ。
(a1 -> b) っていう一引数関数の戻り値の型をcに変えたいよぉ
dot1 :: (b -> c) -> (a1 -> b) -> (a1 -> c)
dot1 = (.) -- ただの関数合成
(a1 -> a2 -> b) っていう二引数関数の戻り値の型をcに変えたいよぉ
dot2 :: (b -> c) -> (a1 -> a2 -> b) -> (a1 -> a2 -> c)
dot2 = (dot1 . (.)) -- = ((.) . (.))
(a -> b -> c -> d)っていう三引数(ry
dot3 :: (b -> c) -> (a1 -> a2 -> a3 -> b) -> (a1 -> a2 -> a3 -> c)
dot3 = (dot2. (.))
etc...
> let addShow = show `dot2` (+)
> addShow 1 2
"3"
参考はこの辺。
http://www.haskell.org/haskellwiki/Pointfree
http://wiki.haskell.jp/Old/sampou.org/cut-sea
俺は使わんけどな。
レス数が900を超えています。1000を超えると表示できなくなるよ。