2009-04-17から1日間の記事一覧

lookup 関数は Maybe モナドを返す

lookup 関数は Maybe モナドを返す Prelude> :t lookup lookup :: (Eq a) => a -> [(a, b)] -> Maybe b Prelude> let taro = ("taro",[("sex","male"),("address","chiba")]) Prelude> let jiro = ("jiro",[("sex","male"),("address","tokyo")]) Prelude> l…

GHCiで複数行の関数を定義

GHCiでパターンマッチのような複数行の関数を定義しようとすると後で定義した行のみが有効になってしまう。 Prelude> let fact 0 = 1 Prelude> let fact n = n * fact (n-1) Prelude> fact 10 *** Exception: stack overflow Prelude> :t fact fact :: (Num …