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; 11 days 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.

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. 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