Gleam (programming language)

Programming language

For other uses, see Gleam (disambiguation).

The topic of this article may not meet Wikipedia's general notability guideline. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted.
Find sources: "Gleam" programming language – news · newspapers · books · scholar · JSTOR (March 2024) (Learn how and when to remove this message)

|

Gleam

Lucy, the starfish mascot for Gleam[1]

Paradigm| Multi-paradigm: functional, concurrent[2]
Designed by| Louis Pilfold
Developer| Louis Pilfold
First appeared| June 13, 2016; 8 years ago (2016-06-13)
Stable release|

1.3.2[3] / 11 July 2024

Typing discipline| Type-safe, static, inferred[2]
Memory management| Garbage collected
Implementation language| Rust
OS| FreeBSD, Linux, macOS, OpenBSD, Windows[4]
License| Apache License 2.0[5]
Filename extensions| .gleam
Website| gleam.run
Influenced by

* Alpaca
* Go
* JavaScript
* Elm
* Erlang
* Elixir
* OCaml
* Rust

[6]

Gleam is a general-purpose, concurrent, functional high-level programming language that compiles to Erlang or JavaScript source code.[2][7]

Gleam is a statically-typed language,[8] which is different from the most popular languages that run on Erlang’s virtual machine BEAM, Erlang and Elixir. Gleam has its own type-safe implementation of OTP, Erlang's actor framework.[9] Packages are provided using the Hex package manager, and an index for finding packages written for Gleam is available.[10]

## History

[edit]

The first numbered version of Gleam was released on April 15, 2019.[11] Compiling to JavaScript was introduced with version v0.16.[12]

In 2023 the Erlang Ecosystem Foundation funded the creation of a course for learning Gleam on the learning platform Exercism.[13]

Version v1.0.0 was released on March 4, 2024.[14]

## Example

[edit]

A "Hello, World!" example:

import gleam/io

pub fn main() {
io.println("hello, friend!")

Gleam supports tail call optimization:[15]

pub fn factorial(x: Int) -> Int {
// The public function calls the private tail recursive function
factorial_loop(x, 1)

fn factorial_loop(x: Int, accumulator: Int) -> Int {
case x {
1 -> accumulator

// The last thing this function does is call itself
_ -> factorial_loop(x - 1, accumulator * x)

## Implementation

[edit]

Gleam's toolchain is implemented in the Rust programming language.[16] The toolchain is a single native binary executable which contains the compiler, build tool, package manager, source code formatter, and language server. A WebAssembly binary containing the Gleam compiler is also available, enabling Gleam code to be compiled within a web browser.

## References

[edit]

1. ^ "gleam-lang/gleam Issues - New logo and mascot #2551". GitHub.
2. ^ a b c "Gleam Homepage". 2024.
3. ^ https://github.com/gleam-lang/gleam/releases/tag/v1.3.2. `{{cite web}}`: Missing or empty `|title=` (help)
4. ^ "Installing Gleam". 2024.
5. ^ "Gleam License File". GitHub. December 5, 2021.
6. ^ "Gleam: Past, Present, Future! • Louis Pilfold @ FOSDEM 2024". YouTube. 2024.
7. ^ Krill, Paul (March 5, 2024). "Gleam language available in first stable release". InfoWorld. Retrieved March 26, 2024.
8. ^ De Simone, Sergio (March 16, 2024). "Erlang-Runtime Statically-Typed Functional Language Gleam Reaches 1.0". InfoQ. Retrieved March 26, 2024.
9. ^ Getting to know Actors in Gleam - Raúl Chouza | Code BEAM America 2024. Retrieved May 6, 2024 - via www.youtube.com.
10. ^ "Introducing the Gleam package index – Gleam". gleam.run. Retrieved May 7, 2024.
11. ^ "Hello, Gleam! – Gleam". gleam.run. Retrieved May 6, 2024.
12. ^ "v0.16 - Gleam compiles to JavaScript! – Gleam". gleam.run. Retrieved May 7, 2024.
13. ^ Alistair, Woodman (December 2023). "Erlang Ecosystem Foundation Annual General Meeting 2023 Chair's Report".
14. ^ "Gleam version 1 – Gleam". gleam.run. Retrieved May 7, 2024.
15. ^ "Tail Calls". The Gleam Language Tour. Retrieved March 26, 2024.
16. ^ gleam-lang/gleam, Gleam, May 6, 2024, retrieved May 6, 2024

## External links

[edit]

* Official website
* Gleam-lang on GitHub

This programming-language-related article is a stub. You can help Wikipedia by expanding it.

|

* v
* t
* e

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template