関数のキーワード引数

Pythonだと関数呼び出し時に引数名(キーワード)を指定することで、デフォルト値を与えておいたり、引数を任意の順序で関数に渡すことができます。例えば

def foo(a, b=2, c=3):
  print a, b, c

という関数を呼び出すときにfoo(1)とすればa=1となり、bとcにはそれぞれデフォルト値である2と3が代入され、出力は「1 2 3」となります。また、foo(1, c=5)とキーワード引数を指定して呼び出せば出力は「1 2 5」です。R言語でも同様の機能がありますし、確かCommon Lispにも(foo :param1 hoge)のような形式でキーワード引数が使えたと思います。

Rubyで似たようなものがないかとリファレンスを読んでいるのですが、なかなか見つかりません。可変長引数やデフォルト値の指定はできそうですが、キーワードというものがないので任意の順番にしてしまったりはできないのでしょう。