Home About
Haskell / ポケモンのモデル化とその進化 Monad による連続変換処理(その2)

前回 ポケモンのモデル化とその進化を Maybe モナドと bind を使って記述しました。 変換処理を連続で適用するという意味では、前回の段階では、コードが読みやすくなった程度で モナドを使う利点がさほどない状態でした。 今回は、ポケモン進化モデルのルールを追加し、モナドを使ううれしさを探ってみます。

» Read More
Haskell / ポケモンのモデル化とその進化 Monad による連続変換処理(その1)

Haskell で練習のため キャタピー進化系のモデル化をやってみます。 Maybe Monad を使ってトレーニングとバトルでゲットしたキャタピーを進化させよう。

» Read More
Haskell / filterM を Maybe Bool だけに制限した filterMaybe 関数をつくる

前回 pure と Just の違い を調べていて、filterM の Maybe 限定版、というのを考えたのでそれを実際に試した。

Monad においては pure より return を使った方が普通なのかもしれません。わかりません。 Javaなどに慣れていると return は Java の return のイメージになり混乱するので、pure を使うで統一しています(今のところ)。 pure と return どっちなの?という件については https://wiki.haskell.org/Monad を見てください。

» Read More
Haskell / Maybe と Writer モナドと bind

今回は Writer モナドと bind について使い方を調べます。

Writer モナドは複雑なので、Writerで実現したい計算に近いコードを Maybe モナドで書き、その後それを Writer モナドに書き換えます。

» Read More