# Functions

Functions can be defined using a Python-inspired style syntax. One notable difference is that each argument must be followed by its type.

def add(x real, y real):
x + y



We may optionally provide a type for the return value of a function if we wish.

def add(x real, y real) real:
x + y



## Anonymous functions

If you don’t wish to name your functions, we also offer a syntax for anonymous functions. These only take on argument and must be given a type alongside the variable name.

fn x real: x + 1


Internally, there are only one argument anonymous functions, and lets. The first example is equivalent to the following.

add = fn x real:
fn y real:
x + y