- 関数型プログラミング言語Haskell Part26
146 :デフォルトの名無しさん[sage]:2014/09/06(土) 10:22:32.78 ID:k4mTz2ku - >>145
有り難うございます。wikipediaの説明が難しかったので、他の解説を探したのですが、下記のような説明を見つけました。 ――――――――――――― http://kinokkory.hatenablog.com/entry/20131203/p1#f-4c58ff88 同型というのは、ふたつのデータ型がある意味で同じものとしてみなせるということです。 AとBが同型であるとは、 ・関数 f :: A -> B と g :: B -> A が存在する。 ・g . f が A についての恒等関数であり、f . g が B についての恒等関数である。 ――――――――――――― ところで上記の説明の2つ目の条件と、「一対一対応する」は微妙に違うと思うのですが、どうでしょうか. data Fruits = Apple | Banana | Strawberry data Number = One | Two | Three f :: Fruits -> Number f Apple = One f Banana = Two f Strawberry = Three g :: Number -> Fruits g One = Banana g Two = Strawberry g Three = Apple ― f . g /= id
|