Lambda Functions
All Scheme procedures are lambda procedures. To create a lambda procedure, we can use the lambda
special form:
(lambda (<param1> <param2> ...) <body>)
This expression will create and return a function with the given parameters and body, but it will not alter the current environment. This is very similar to a lambda
expression in Python!
scm> (lambda (x y) (+ x y)) ; Returns a lambda function, but doesn't assign it to a name
(lambda (x y) (+ x y))
scm> ((lambda (x y) (+ x y)) 3 4) ; Create and call a lambda function in one line
7
A procedure may take in any number of parameters. The <body>
may contain multiple expressions. There is not an equivalent version of a Python return
statement in Scheme. The function will simply return the value of the last expression in the body.