From: Shiro Kawai <shiro / lava.net>
Subject: [haskell-jp:240] Re: 低レベルプログラミングとstricttypesystem
Date: Thu, 30 Oct 2003 16:41:27 -1000 (HST)

> あーなるほど。これって結局、静的型付けで省略可能引数にデフォルト引数を
> 与えてているのと同じですよね。異なる点は、違う個数の引数を与える関数に
> 違う名前を当てなくちゃならないというところ。
> 
> 型安全を取るか、名前の多重定義の方を心地よく感じるか、そういう問題かなあ。

Haskell では名前の多重定義も簡単に利用できます。(とうぜん型安全です:-))
こちらは、Scheme のやり方というか、CLOS のやりかたに近いですかねぇ。

class FooArg a where
  foo :: a -> p

instance FooArg (X,Y) where
  foo (x,y) = ...             -- 見かけ上2引数の foo

と最初に定義していたところに

instance FooArg (X,Y,Z) where
  foo (x,y,z) = ...           -- 見かけ上3引数の foo

を加えるだけでOKです。私は Haskell では、この方法は使わないなぁ。

--nobsun





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