Skip to main content
Version: 0.70.0

Functions

Functions are first-class and curried.

Declaring functions

let add x y = x + y
let result = add 2 3

Zero-argument functions use () as their parameter and call syntax:

let ping () = "pong"
let message = ping ()

Anonymous functions

let inc = fun x -> x + 1

Anonymous functions can also use a unit parameter:

let getAnswer = fun () -> 42
let answer = getAnswer ()

Partial application

let add10 = add 10
let twelve = add10 2

Recursive functions

let rec fib n =
if n <= 1 then n
else fib (n - 1) + fib (n - 2)

Pipeline style

let text =
"fscript"
|> fun s -> String.toUpper s
|> fun s -> $"{s}!"