kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

オーバーロードされたメソッドをeta-expansionする (2)

kmizu.hatenablog.com

を読み返していて、これ、

val add: (Double, Int) => Double = O.add

で行けるんだから、そもそも_が要らなくて

O.add:((Double, Int) => Int)

でいけるのでは?と思って書いてみたら動いたという話です。要はメソッド型の式(O.addはメソッド型の式と解釈される)に型注釈として関数型(function type)を書いてやればいいというだけの話です。オーバーロードされたメソッドをeta-expansionするには、今のところこれが最も手っ取り早い方法だといえそうです。