22. module →
module modid where
body
| module modid (export1, ...) where
body
| body
modid → {modid’ .} modid’
modid’ → [A..Z] {[a..zA..Z0..9’]} 一文字目は大文字
module Main (main) where を省略したことになる
29. 関数型
• 関数型は一引数関数を表す。
• 2引数関数は次の2つの表現方法がある。
▫ f :: (a,b)->c
x :: a, y :: b のとき、f (x,y) :: c
▫ f :: a->b->c
x :: a, y :: b のとき、f x y :: c
• Haskellでは2番目をよく用いる。1番目から2番
目への変換をカリー化という。また、「f x」の
ようにすることを部分適用という。
★★★★★
a->b->c = a->(b->c)
f x y = (f x) y
カリー化 currying
部分適用 partial application
61. モナドの意味
-- m a は a の型の値を出力する計算である。
class Monad m where
-- x >>= f は計算 x の結果を f に渡し、
-- 新たな計算を得るということである。
(>>=) :: m a -> (a -> m b) -> m b
-- return c は値cを返す単純な計算である。
return :: a -> m a