20/05/23 01:56:13 PUmkxvlF.net
>>325
>>326
それはひとつのモナドを3回評価しているのではなく、
ひとつのモナドの中の値を3回評価しているのではないでしょうか?
例えば repM (getLine >>= print) を評価すると、
1回しか getLine >>= print を評価しません。
ちなみに、IOモナドに限れば unsafeInterleaveIO 関数が使えます。
また、リストではなくいわゆるストリームなら出来ました。
ですが今はモナド全般に適用でき、リストのモナドを返す関数を求めています。