Skip to main content Svelte Highlight v7.21.1

ReScript language preview

1. Types and pattern matching

variants, records, and switch
horizon-dark
type shape =
  | Circle(float)
  | Rectangle(float, float)

let area = shape =>
  switch shape {
  | Circle(r) => 3.14 *. r *. r
  | Rectangle(w, h) => w *. h
  }
atom-one-dark
type shape =
  | Circle(float)
  | Rectangle(float, float)

let area = shape =>
  switch shape {
  | Circle(r) => 3.14 *. r *. r
  | Rectangle(w, h) => w *. h
  }
github-dark
type shape =
  | Circle(float)
  | Rectangle(float, float)

let area = shape =>
  switch shape {
  | Circle(r) => 3.14 *. r *. r
  | Rectangle(w, h) => w *. h
  }
dracula
type shape =
  | Circle(float)
  | Rectangle(float, float)

let area = shape =>
  switch shape {
  | Circle(r) => 3.14 *. r *. r
  | Rectangle(w, h) => w *. h
  }
nord
type shape =
  | Circle(float)
  | Rectangle(float, float)

let area = shape =>
  switch shape {
  | Circle(r) => 3.14 *. r *. r
  | Rectangle(w, h) => w *. h
  }
github
type shape =
  | Circle(float)
  | Rectangle(float, float)

let area = shape =>
  switch shape {
  | Circle(r) => 3.14 *. r *. r
  | Rectangle(w, h) => w *. h
  }

2. Bindings and polymorphic variants

let bindings, decorators, and JSX-friendly syntax
horizon-dark
@react.component
let make = (~name) => {
  let color = #Blue
  let greeting = "Hello, " ++ name
  <div className="greeting"> {React.string(greeting)} </div>
}
atom-one-dark
@react.component
let make = (~name) => {
  let color = #Blue
  let greeting = "Hello, " ++ name
  <div className="greeting"> {React.string(greeting)} </div>
}
github-dark
@react.component
let make = (~name) => {
  let color = #Blue
  let greeting = "Hello, " ++ name
  <div className="greeting"> {React.string(greeting)} </div>
}
dracula
@react.component
let make = (~name) => {
  let color = #Blue
  let greeting = "Hello, " ++ name
  <div className="greeting"> {React.string(greeting)} </div>
}
nord
@react.component
let make = (~name) => {
  let color = #Blue
  let greeting = "Hello, " ++ name
  <div className="greeting"> {React.string(greeting)} </div>
}
github
@react.component
let make = (~name) => {
  let color = #Blue
  let greeting = "Hello, " ++ name
  <div className="greeting"> {React.string(greeting)} </div>
}

3. Recursive let bindings

let rec correctly titles the function, not "rec"
horizon-dark
let rec factorial = n =>
  switch n {
  | 0 => 1
  | n => n * factorial(n - 1)
  }
atom-one-dark
let rec factorial = n =>
  switch n {
  | 0 => 1
  | n => n * factorial(n - 1)
  }
github-dark
let rec factorial = n =>
  switch n {
  | 0 => 1
  | n => n * factorial(n - 1)
  }
dracula
let rec factorial = n =>
  switch n {
  | 0 => 1
  | n => n * factorial(n - 1)
  }
nord
let rec factorial = n =>
  switch n {
  | 0 => 1
  | n => n * factorial(n - 1)
  }
github
let rec factorial = n =>
  switch n {
  | 0 => 1
  | n => n * factorial(n - 1)
  }