Elm is a [http://en.wikipedia.org/wiki/Functional_programming [functional programming]] language for [http://en.wikipedia.org/wiki/[Declarative_programming|declaratively]] creating [http://en.wikipedia.org/wiki/Graphical_user_interface [graphical user interfacesinterface]]s. Elm uses the [http://en.wikipedia.org/wiki/[Functional_reactive_programming|Functional Reactive Programming]] style and [http://en.wikipedia.org/wiki/Purely_functional [purely functional]] graphical layout to build user interface without any destructive updates.
== Description ==
Line 16:
The primary implementation of Elm compiles to HTML, CSS, and JavaScript. Functional Reactive Programming takes the place of event handlers and callbacks; it also manages all screen updates automatically. Purely functional graphical layout takes the place of working with the DOM.
Elm allows [http://en.wikipedia.org/wiki/Markdown [Markdown]] to be embedded directly, so users can create text content in a familiar and natural way.
== Syntax and Semantics ==
Elm's version of [http://en.wikipedia.org/wiki/[Functional_reactive_programming|Functional Reactive Programming]] is event-driven, meaning that updates are only performed as necessary. It shares the closest resemblance to Event-Driven FRP <ref>{{cite journal