Rubyに名前つきオプション引数を導入?

http://www.rubyist.net/~matz/20070126.html#p04

それは何というOLablでしょうか?(今はOCamlにマージされていますが)

Cf. http://www.math.nagoya-u.ac.jp/~garrigue/research.htmlPythonとどっちが先だろう。…って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

ついでにいつもの宣伝。すでに読まれているかもしれませんが。

*1:勉強したいプログラミング言語ナンバー1です