*** Welcome to piglix ***

Elm (programming language)

Elm
The Elm tangram
Paradigm functional
Designed by Evan Czaplicki
First appeared 2012
Stable release
0.18 / November 14, 2016; 2 months ago (2016-11-14)
Typing discipline static, strong, inferred
License Permissive (Revised BSD)
Filename extensions .elm
Website elm-lang.org
Influenced by
Haskell, Standard ML, OCaml, F#
Influenced
Redux (application architecture)

Elm is a domain-specific programming language for declaratively creating web browser-based graphical user interfaces. Elm is purely functional, and is developed with emphasis on usability, performance, and robustness. It advertises "no runtime exceptions in practice," made possible by the Elm compiler's static type checking.

Elm was initially designed by Evan Czaplicki as his thesis in 2012. The first release of Elm came with many examples and an online editor that made it easy to try out in a web browser. Evan Czaplicki joined Prezi in 2013 to work on Elm, and in 2016 moved to NoRedInk as an Open Source Engineer, also starting the Elm Software Foundation.

The initial implementation of the Elm compiler targets HTML, CSS, and JavaScript. The set of core tools has continued to expand, now including a REPL,package manager, time-traveling debugger, and installers for Mac and Windows. Elm also has an ecosystem of community created libraries.

Elm has a small but expressive set of language constructs, including if-expressions, let-expressions, case-expressions, anonymous functions, and list interpolation. From there the key features include immutability, static types, and interoperability with HTML, CSS, and JavaScript.

All values in Elm are immutable, meaning that a value cannot be modified after it is created. Elm uses persistent data structures to implement its Array, Dict, and Set libraries.

Elm is statically typed. Every definition in Elm can be given a type annotation that describes the exact shape of the value. Types include:


...
Wikipedia

...