Reason (programming language)

Reason, also known as ReasonML, is a general-purpose, high-level, multi-paradigm, functional and object-oriented programming language and syntax extension and toolchain for OCaml created by Jordan Walke, who also created the React framework, at Facebook.[3][4] Reason uses many syntax elements from JavaScript, compiles to native code using OCaml's compiler toolchain, and can compile to JavaScript using the ReScript compiler.[5]

Reason
ParadigmsMulti-paradigm: functional, imperative, modular, object-oriented
FamilyML: Caml: OCaml
Designed byJordan Walke
First appearedMay 16, 2016; 8 years ago (2016-05-16)[1]
Stable release
3.13.0[2] Edit this on Wikidata / October 21, 2024; 2 months ago (October 21, 2024)
LicenseMIT
Filename extensions.re, .rei
Websitereasonml.github.io Edit this at Wikidata
Influenced by
OCaml, JavaScript

The Reason community officially provides ReasonReact as a solution for React-based web applications.[6]

BuckleScript and ReScript

edit

Reason was originally compiled to JavaScript using the BuckleScript compiler,[7] which was created at Bloomberg L.P.

In 2020, the BuckleScript and Reason toolchain was rebranded to ReScript, essentially creating a separate language that had different syntax from Reason and only compiled to JavaScript.[8]

BuckleScript was forked to Melange[9] to continue to support compiling OCaml to JavaScript.

Example

edit
type schoolPerson = Teacher | Director | Student(string);

let greeting = person =>
  switch (person) {
  | Teacher => "Hey Professor!"
  | Director => "Hello Director."
  | Student("Richard") => "Still here Ricky?"
  | Student(anyOtherName) => "Hey, " ++ anyOtherName ++ "."
  };

See also

edit
  • Elm – A functional language that uses an abstraction called ports to communicate with JavaScript
  • PureScript – A strongly-typed, purely-functional programming language that compiles to JavaScript

References

edit
  1. ^ "Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems: facebook/reason". GitHub. Facebook. 2019-03-23. Retrieved 2019-03-23.
  2. ^ "Release 3.13.0". 21 October 2024. Retrieved 27 October 2024.
  3. ^ "What is ReasonML?". 2ality. Retrieved 2019-03-23.
  4. ^ Rauschmayer, Axel (2018). Exploring ReasonML and functional programming. ReasonML Hub. Retrieved 2024-05-14.
  5. ^ "Overview: ReScript Documentation". rescript-lang.org. Retrieved 2020-08-10.
  6. ^ "ReasonReact". GitHub.
  7. ^ "BuckleScript". Bloomberg L.p. Retrieved 2022-09-11.
  8. ^ "BuckleScript & Reason Rebranding". rescript-lang. Retrieved 2022-09-11.
  9. ^ "ANN: Melange 1.0 – compile OCaml / ReasonML to JavaScript". OCaml. 2023-06-02. Retrieved 2024-05-24.
edit
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy