Functions in Racket can be created with the
lambda form. The form takes a list of arguments and a body.
(lambda (x y) (* x y))
In the example above, the function takes in two arguments and returns the result of multiplying them.
> ((lambda (x y) (* x y)) 4 4) 16 > ((lambda (x y) (* x y)) 3 2) 6
It's tedious to re-write the function and its body every time we want to multiply two numbers, so let's give it a name. To give it a name, use the
define form. This will bind functions to a name.
(define multiply (lambda (x y) (* x y)))
Now we can refer to our function by calling
> (multiply 5 2) 10
Since it is very common to bind procedures to names, Racket provides a shorthand to define functions using the define form.
(define (multiply x y) (* x y))
For more information and examples, see Functions: lambda in the Racket Guide.