case-lambda[syntax] case-lambda (formals body) ...
SRFI-16, ChezScheme, Chicken, MzScheme, Gauche, STklos
(define plus
(case-lambda
(() 0)
((x) x)
((x y) (+ x y))
((x y z) (+ (+ x y) z))
(args (apply + args))))
(plus) --> 0
(plus 1) --> 1
(plus 1 2 3) --> 6
((case-lambda
((a) a)
((a b) (* a b)))
1 2 3) --> error
See also lambda.
|