2017-05-01から1日間の記事一覧

よくやる処理のHaskell流のやり方

全列挙: [x^2 | x <- [1,3,5]] 総当りペア: [(x,y) | x <- [1..4], y <- [3..5]] ペア [(x1,x2) | x1 <- [1..4],x2 <- [1..4],x1 < x2] 隣接ペア zip [1..4] (tail [1..4]) より詳しく集合の内包表現: [x|x <-[1..20],x `mod` 3 ==0]

関数定義を読む、関数を定義して作る

関数は、型を持つ。通常の関数は、引数を取って値を返すので、引数の型から返り値の型へ、という型の定義を持つ 関数は、型定義の他に、どのような処理をするかの定義も持つ 関数は、上記の2つの定義からなる recip :: Fractional a => a -> a recip n = 1/…

Haskellのその他の特徴や使うときのコツ

型を調べる "False"はBool型である >:type False False :: Bool "cos"は型 a を引数として、型aを返す関数である。ただし、aをFloatとする >:type cos cos :: Folating a => a -> a カリー化 関数は複数の引数を取りうるが、それを、別の形で定義することも…

私のためのHaskell再入門

Haskell環境の準備 StackというHaskellのコンパイル制御ツールを使って、特定のパッケージを使う環境を整えると、『その環境のための』ghciまで入る。特定のパッケージを使うわけではなく、ローカルでHaskellの何かを始めようとするときにもStackを使うと、g…