関数型プログラミング言語Haskell Part9
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
850:デフォルトの名無しさん 08/10/31 11:19:22 >>846 それだと f # b c -- \a -> f a b cと同等 と (f #) b c -- (\a -> f a) b cと同等 を区別する必要が出てきて面倒だな 851:デフォルトの名無しさん 08/11/02 13:03:16 http://d.hatena.ne.jp/m-hiyama/20081031/1225416719 ブログ持ってないのでここで。酒井さんのパクリ。 {-# OPTIONS -fglasgow-exts #-} import Control.Monad (liftM2) import Data.Either import Test.QuickCheck infix 4 :<->: type a :<->: b = (a -> b, b -> a) (.>) :: a:<->:b -> b:<->:c -> a:<->:c (f1,g1) .> (f2,g2) = (f2 . f1, g1 . g2) un :: a:<->:b -> b:<->:a un (f,g) = (g,f) type a :+: b = Either a b infixr 5 :+: alt :: a:+:b :<->: b:+:a alt = (f,f) where f = either Right Left swap :: a:+:b:+:c :<->: b:+:a:+:c swap = (f,f) where f = either (Right . Left) (either Left (Right . Right)) rt :: b :<->: c -> a:+:b :<->: a:+:c rt (f,g) = (r f, r g) where r = either Left . (Right .)
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5219日前に更新/225 KB
担当:undef