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`

```
> (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.