TL;DR

純粋関数型の関数型プログラミング言語。静的型付けで、型推論と遅延評価を備える。

仕組み

公式サイトでは、次の特徴を挙げている。

  • 静的型付け: すべての式の型がコンパイル時に決まる。型の合わないコードは実行前に弾かれる
  • 純粋関数型: 文や命令はなく、変数を書き換えない式だけで書く。関数は副作用を持たず、IO は値として表す
  • 型推論: 型の多くはコンパイラが推論するので、すべてを明示的に書く必要はない
  • 並行処理: 作用を明示的に扱うので、並行プログラミングと相性が良い
  • 遅延評価: 関数は引数を必要になるまで評価しない。そのため if/else のような制御構造も、普通の関数として書ける

関連

出典