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)
Branch(Tree(value), Tree(value))
};
pub fn any(tree: Tree(a), check: fn(a) -> Bool) -> Bool {
case tree {
Leaf(i) -> check(i)
Branch(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.
Gleam is kindly supported by 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.
- Adam Mokan
- Arian Daneshvar
- Ben Myles
- Bernardo Amorim
- Bryan Paxton
- Christian Meunier
- Clever Bunny LTD
- Cole Lawrence
- Dave Lucia
- David McKay
- Eric Meadows-Jönsson
- Erik Terpstra
- Florian Kraft
- Guilherme Pasqualino
- Hendrik Richter
- Herdy Handoko
- Ingmar Gagen
- Ivar Vong
- James MacAulay
- Jechol Lee
- John Palgut
- José Valim
- Lars Wikman
- Mario Vellandi
- mario
- Mark Markaryan
- Matthew Cheely
- Michael Jones
- Mike Roach
- Milad
- Nick Reynolds
- Parker Selbert
- Pete Jodo
- Raphael Megzari
- René Klačan
- Sean Jensen-Grey
- Shritesh Bhattarai
- Tristan Sloughter
- Wojtek Mach