(rontolisp) docs
← (scheme case-lambda)

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 は名前を挙げて拒否されます。