2024-01-14から1日間の記事一覧

Haskell ">>="による副作用管理【Haskell モナド モナド則】

モナドのメリット モナドはHaskellのプログラムにおいて、特に入出力回りで活躍する仕組みです。 関数プログラムの本体から副作用を安全に分離することができ、計算戦略をプログラム全体にばら撒くことをせずに、一箇所にまとめることができます。 モナドの…

Haskellのclassによる型制約【Haskell class data】

classキーワード 型クラスの定義 Haskellでは等号、非等号を表すためにEqというクラスを使用しています。 class Eq a where (==), (/=) :: a -> a -> Bool x == y = not (x /= y) x /= y = not (x == y) 上記のEqクラスから以下の情報が読み取れます。 等号…

Haskell dataで型を作成する【Haskell data 型作成】

Haskellのdataについて Haskellのdata コマンドは既存の型を組み合わせて新しい型を作ることが出来ます。 data Animal = Cat Int scream :: Animal -> String scream (Cat number ) = concat (replicate number "ニャー") main = print $ scream(Cat 2) 上記…

Haskellのlet whereの使い方【Haskell let where 変数宣言 局所的変数】H

変数宣言letの具体例 Haskellにおいて変数を宣言する方法は、letを使用する方法があります。 main = do let name = "田中太郎" print(name) ちなみに、一つのletの中で複数の変数を宣言するには{}を使用します。 main = do let {name = "田中太郎"; id = 100…

Haskellにおける条件式【Haskell, if, case, switch】

Haskellにおける条件式 Haskellにおいて、条件文という言葉よりも「条件式」といったほうが適切かもしれません。 条件文という言葉は手続き型言語やオブジェクト指向型言語では使われますが、Haskellにおいては「関数」が第一級オブジェクトとして扱われます…