2011-09-01から1ヶ月間の記事一覧

出力する型を指定することによって違う型を返す関数

return や pure は出力する型を指定することによって違う型を返します。 ghci> (return 123)::IO Int -- > 123 ghci> (return 123)::[Int] -- > [123] ghci> (return 123)::Maybe Int -- > Just 123 ghci> :m + Control.Applicative ghci> (pure 123)::Maybe…

Haskell のループ

Haskell のループと言うと何でも再帰させてしまいます。 map、fold もあるのですが、特にリスト内包表記は使っていませんでした。 フィボナッチ数 フィボナッチ数 1つがいの兎は、産まれて2か月後から毎月1つがいずつの兎を産む。 1つがいの兎は1年の間に何…

Text.Printf.printf を使ってみる

Text.PrintfはC言語のprintfライブラリに機能が似た関数で引数の数もC言語のprintfと同じように変化させることが出来ます。最初の例では文字列に含まれる %s、%d 、%.10f が引数の値が展開される部分です。 3箇所%で指定してあり、3個の引数が渡されています…

hackage.haskell.org に繋がるようになりました。

IPv6を有効に ある時期から hackage.haskell.org に繋がらないという状態になり、UbuntuでIPv6を有効にする方法を参考にIPv6を有効にしたところ、hackage.haskell.org に繋がるようになりましたが、www.haskell.org には繋がらなくなってしまいました。 IPv6…

Data.Time.Calendar で日付の計算をする。

Data.Time.Calendar を使って日付の計算をしてみます。 Data.Time.Calendar の日付は1858-11-17を0とした修正ユリウス日により管理されています。 数年にわたる2点の日数を計算するのには、紀元前4713年1月1日正午からの日数であるユリウス日に変換して計算…