/gleam

✨ A statically typed language for the Erlang VM

Primary LanguageRustApache License 2.0Apache-2.0

Gleam ✨

build

Gleam is a statically typed functional programming language for building scalable concurrent systems. It compiles to Erlang and has straightforward interop with other BEAM languages such as Erlang, Elixir and LFE.

⚠️ Gleam is pre-alpha software. You are welcome to try it, but it may do anything up to and including eating your laundry and then crashing.

pub enum Tree =
  | Leaf(Int)
  | Node(Tree, Tree)

pub fn any(tree, predicate) {
  case tree {
  | Leaf(i) -> predicate(i)
  | Node(left, right) -> any(left, predicate) || any(right, predicate)
  }
}

pub fn has_even_leaf(tree) {
  any(tree, fn(i) {
    i % 2 == 0
  })
}

For more information see the Gleam website: https://gleam.run.