case-lambda
(case-lambda (formals body...)...)
手続きを返します。呼び出しは、引数の個数を受け付ける最初の節をとります -- (x y) はちょうど 2 個、(x . rest) は 1 個以上、args は何個でも。その formals を持つ lambda と同じように引数を束縛し、body を評価します。各 body の先頭には定義を書けます。case-lambda で定義した手続きが末尾位置で自分自身を呼ぶ場合は、lambda で定義した手続きと同じく一定の空間で動きます。
仕様との差異:
- どの節も受け付けない呼び出しは、メッセージが
wrong number of arguments to case-lambda:に引数が続くエラーオブジェクトを raise します。Gauche はcase lambdaと綴ります。 evalの中のcase-lambdaは名前を挙げて拒否されます。