changeset 34:df55c9df8aac

Adjust monad class definition
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Thu, 12 Feb 2015 15:08:48 +0900
parents 113b49263d40
children 7efeca634b50
files delta.tex src/monad_class.hs
diffstat 2 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/delta.tex	Thu Feb 12 14:51:39 2015 +0900
+++ b/delta.tex	Thu Feb 12 15:08:48 2015 +0900
@@ -108,6 +108,10 @@
 
 
 型クラス Monad に属するために要請される関数は return と \verb/>>=/ である。
+\verb/::/ は型注釈であり、 $ term :: type $ のように記述する。
+なお、関数型は \verb/ a -> b / のように引数の型と返り値の型を \verb/->/で挟んで記述する。
+引数が2つ以上の関数は \verb/ a -> b ->  ... -> d / のように \verb/->/を増やすことで記述する。
+
 関数 return は任意の型aを受けとり、メタ計算と対応された型に対応させて返す。
 \verb/>>=/ は中置関数であり、left operand と right operand を取る。
 left operand であるメタ計算と対応された値と、right operand であるメタ計算と対応された値を返す関数を取り、メタ計算を行ないながら関数を適用する。
--- a/src/monad_class.hs	Thu Feb 12 14:51:39 2015 +0900
+++ b/src/monad_class.hs	Thu Feb 12 15:08:48 2015 +0900
@@ -1,3 +1,3 @@
 class Monad m where
-    return :: a -> m a
-    (>>=)  :: m a -> (a -> mb) -> mb
+    return :: a -> (m a)
+    (>>=)  :: (m a) -> (a -> (m b)) -> (m b)