豊福です。
やっと "How to Declare an Imperative" の全体を読みました。

>     echo = getc >>= (fn c =>
>              if (c = #"\n") then
>                done
>              else
>                putc c >>
>                echo))
> みたいに書こうとすると関数以外の何の再帰定義が必要になって
> くるのですか。

  たとえ再帰定義を使える関数の方で書こうとしても「>>=」を使った
ままの形を保とうとすると

  fun 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/