Haskell は純粋関数型プログラミング言語です。

関数名は小文字で始めます。アポストロフィーが使えます。
関数 function は「入力値」「出力値」「処理内容」の 3 つの要素で構成されます。
関数名が処理内容を表します。
入力値を 2 つ以上受け付ける関数を 高階関数 higher order function と呼びます。

「入力値」を受け付けず、自分自身を出力とする値を 定数 と呼びます。
定数は「処理内容」が自分自身を「出力値」とする値と言えます。
値はその特性によってグループ分けされます。
そのグループを型と言います。定数の型には以下のようなものがあります:

  • 真偽型
  • 比較型
  • 文字型
  • リスト型
  • タプル型
  • 整数型
  • 浮動小数点数型

型はその特性によってさらにグループ分けされます。型のグループは 型クラス と呼ばれます。

一応断っておくと、本文では関数、高階関数、定数、後に登場する表現を全て値と呼びます。
関数の適用は、関数名と入力値で半角スペースを挟むことで実現されます。
関数に適用可能なものは全て値であり、関数自身も関数に適用可能であるので関数も値です。

:t で型を調べることができます。
以下は文字型の場合です:

Prelude> :t 'a'
'a' :: Char

ここで :: の右側が左側の値の型名を表しています。

以下、:t を実行して得られる
:: の右側を 型名 type name と呼びます。