こんにちは、shelarcy です。

On Thu, 06 Nov 2003 16:35:29 +0900, TOYOFUKU Chikanobu 
<nobu_toyofuku / nifty.com> wrote:
>> SMLでは再帰定義は関数についてだけ可能なので、抽象データ型'a ioを利用
>> するためには不動点演算子fixを定義する。
>
> ......
>
>   全然わかってないのですが
>     echo = getc >>= (fn c =>
>              if (c = #"\n") then
>                done
>              else
>                putc c >>
>                echo))
> みたいに書こうとすると関数以外の何の再帰定義が必要になって
> くるのですか。

型の再帰定義です。
つまり、ML で直接これが書けないというところに戻ってくるわけですが。

y :: (a -> a) -> a
y f = f (y f)


-- 
shelarcy <shelarcy / capella.freemail.ne.jp>
http://page.freett.com/shelarcy/ 

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