Functions

Functions are declared with fn. The last expression in a function body is the return value.

fn add(a: int, b: int) -> int {
  a + b
}

One-liner functions use = syntax.

fn double(x: int) -> int = x * 2

Functions without a return type return nil.

fn greet(name: str) {
  println("hello {name}")
}

return is available for early exits.

fn first_positive(a: int, b: int) -> int {
  if a > 0 {
    return a
  }
  b
}

fn main() {
  println(add(3, 4))
  println(double(5))
  greet("world")
  println(first_positive(-1, 42))
}
$ pyr run functions.pyr
7
10
hello world
42