racket Functions Function Definitions


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)
> ((lambda (x y) (* x y)) 3 2)

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

> (multiply 5 2)

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.