Rubyに名前つきオプション引数を導入?
http://www.rubyist.net/~matz/20070126.html#p04
それは何というOLablでしょうか?(今はOCamlにマージされていますが)
Cf. http://www.math.nagoya-u.ac.jp/~garrigue/research.html。Pythonとどっちが先だろう。…ってAdaにもあるって書いてあるじゃん!
あと、http://www.rubyist.net/~matz/20070126.html#c07より:
それもあるし、引数名とキーワード名が区別できない(同一であることを強制される)のもちょっとイヤ。もっともSRFI 89みたいに両方指定することを強制されるのもイヤなんだけど。
OCamlのラベルつき引数・オプション引数の文法を適当に変えて、もちろん型もなくして使うとか…(ぼそ)。Rubyはまったく知らないので*1何ですが、Schemeと同じく、カリー化(というか部分適用)がなければ楽かと。
# let f ?(x=0) y = x + y ;; val f : ?x:int -> int -> int = <fun> # f 1 ;; - : int = 1 # f ~x:1 2 ;; - : int = 3 # let g ?i:(x=0) y = x + y ;; val g : ?i:int -> int -> int = <fun> # g 1 ;; - : int = 1 # g ~i:1 2 ;; - : int = 3
ついでにいつもの宣伝。すでに読まれているかもしれませんが。