Function Overloading in Scheme – An example
PROGRAM :-
;; Schemes offer a case-lambda macro
(define foo
(case-lambda
((x) “no additional args”)
((x y) “1 additional arg”)
((x y z) “2 additional args”)
((x . any) “even more additional args”)))
TEST CASES:-
> (foo 1)
“no additional args”
> (foo 2)
“no additional args”
> (foo 1 2)
“1 additional arg”
> (foo 1 2 3)
“2 additional args”
> (foo 1 2 3 4 5 6)
“even more additional args”

Leave a Reply