Skip to content
⭐️ A statically typed language for the Erlang VM
Rust Other
  1. Rust 99.2%
  2. Other 0.8%
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows Update create_release.yaml Jan 8, 2020
bin Handle multiple tags in build script Sep 19, 2019
img Logo Oct 11, 2019
src gleam new renders installation instructions Jan 23, 2020
test/hello_world Tuple enclosing type error test Jan 17, 2020
.gitattributes Mark website as generated for GitHub Aug 7, 2019
.gitignore
CHANGELOG.md gleam new renders installation instructions Jan 23, 2020
CODE_OF_CONDUCT.md CODE_OF_CONDUCT.md Sep 22, 2018
CONTRIBUTING.md Split out stdlib into github.com/gleam-lang/stdlib Oct 27, 2019
Cargo.lock Blated version update Jan 19, 2020
Cargo.toml Blated version update Jan 19, 2020
Dockerfile Split out stdlib into github.com/gleam-lang/stdlib Oct 27, 2019
LICENCE copyright Jun 23, 2019
Makefile Correct makefile phony Dec 20, 2019
README.md Make GitHub syntax highlighting happy Dec 23, 2019
build.rs Split out stdlib into github.com/gleam-lang/stdlib Oct 27, 2019

README.md

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.

You can’t perform that action at this time.