豊福です。
相変わらず遅い反応ですみません。

shelarcyさん
> 某所の"How to Declare an Imperative"の要約より side effectによるmonadの表現
> (現在ではどこにいったのか分かりません)

  日本語訳のページが今はアクセスできなくなっているようなので
http://www.research.avayalabs.com/user/wadler/topics/monads.html
にある psファイルを落としましたが psファイルを読むことができ
なくて今日まで時間がかかってました。

> SMLでは再帰定義は関数についてだけ可能なので、抽象データ型'a ioを利用
> するためには不動点演算子fixを定義する。

  fix がどこに使われてるの?と思っていましたが
    val echo : unit io
    val echo = fix (fn echo =>
                 getc >>= (fn c =>
                   if (c = #"\n") then
                     done
                   else
                     putc c >>
                     echo))
のところですか。
  全然わかってないのですが
    echo = getc >>= (fn c =>
             if (c = #"\n") then
               done
             else
               putc c >>
               echo))
みたいに書こうとすると関数以外の何の再帰定義が必要になって
くるのですか。
---
                        豊福
                        nobu_toyofuku / nifty.com


--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/