エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Haskell のWriter モナド (1) – Control.Monad.Writer を使う前に
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Haskell のWriter モナド (1) – Control.Monad.Writer を使う前に
1. 最終的な結果だけでなく、中間結果も出力したい 例えば、次のような簡単な計算を行わせた場合、 (1 +... 1. 最終的な結果だけでなく、中間結果も出力したい 例えば、次のような簡単な計算を行わせた場合、 (1 + 2) * 3 - 4 答えは `5’ となる。 関数 (演算) が適用される、それぞれの過程の結果を考えると、 1 + 2 => 3 3 * 3 => 9 9 – 4 => 5 となる。 このように最終的な結果だけではなく、計算途中の結果も表示したい場合には、どうすればいいのだろう? 2. let 式で中間結果を束縛 まず、考えられる方法は、それぞれの中間結果を、後で参照できるように let 式内で変数に束縛。結果をコンマ区切りで表示するなら、 main = do let a = 1 + 2 b = a * 3 c = b - 4 print $ show a ++ "," ++ show b ++ "," ++ show c ++ "," 結果は、以下のようになる。 "3,9,5