ログを付加する例です。x])これを使って、計算にログを付加する例です。タプルに変換して出力します。使うと、モノイド値だけを追記することができます。b)上記のユークリッドの互除法の関数に、ログ追加版を作ってみます。挿入する非効率なリスト構築ログにリストを使うとき、リスト結合の処理が遅くなる場合があります。このため、効率のよい結合をサポートするデータ構造を使う方がよいです。そのひとつが差分リストです。差分リスト差分リストは、リストを受け取ってリストを返す関数として実装されます。モナドは、共通の値(環境変数)を参照するという文脈付き値を表します。関数は、ファンクターでありアプリカティブファンクターでもありましたが、さらにモナドでもあります。b)これを使うと、次のようになります。引数で渡した値が、各関数(モナド)で共通に参照されます。モナドとも呼ばれる」という話だけで終わっています。モナドには触れないでおきます。モナドは、状態付き計算という文脈付きの値を表します。乱数を返す関数は状態付き計算です。乱数ジェネレータを受け取って、乱数値と新しい乱数ジェネレータを返します。スタックと石スタック(データ構造)を作ることを考えます。いちいちスタックを渡してやらなくてはならず、不便です。