• Docs
  • Try
  • API
  • Community
  • Blog
  • English
    • 日本語
    • Deutsch
    • Español
    • Français
    • 한국어
    • Português (Brasil)
    • Русский
    • Українська
    • 中文
    • 繁體中文
    • Help Translate
  • GitHub
Hello! This particular page hash has moved to . Please update the URLs to reflect it. Thanks!
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 ++ "."
  };
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 ++ "."
  };
Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.
Try Online
Quick Start

Types without hassle

Image for: Types without hassle

Powerful, safe type inference means you rarely have to annotate types, but everything gets checked for you.

Use the power of the OCaml ecosystem

Image for: Use the power of the OCaml ecosystem

Get access to the powerful systems programming language OCaml with an easier to learn syntax. Use Melange to compile to JavaScript!

Users of Reason

Image for: Users of Reason
See Full List