Skip to content
forked from gleam-lang/gleam

⭐️ A statically typed language for the Erlang VM

License

Notifications You must be signed in to change notification settings

tomwhatmore/gleam

 
 

Repository files navigation

Gleam logo

Fast, friendly, functional!

GitHub release IRC: #gleam-lang on chat.freenode.net

 

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.

It looks like this:

pub type Tree(value) {
  Leaf(value)
  Node(Tree(value), Tree(value))
};

pub fn any(tree: Tree(a), check: fn(a) -> Bool) -> Bool {
  case tree {
    Leaf(i) -> check(i)
    Node(left, right) -> any(left, check) || any(right, check)
  }
}

pub fn has_even_leaf(tree: Tree(Int)) -> Bool {
  any(tree, fn(i) {
    i % 2 == 0
  })
}

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

Sponsors

Gleam is kindly supported its sponsors. If you would like to support Gleam please consider sponsoring its development on GitHub.

These people are sponsoring at least $10 a month, enabling further Gleam development.

About

⭐️ A statically typed language for the Erlang VM

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 97.7%
  • HTML 0.8%
  • CSS 0.8%
  • Erlang 0.3%
  • Shell 0.2%
  • Makefile 0.1%
  • Dockerfile 0.1%