基本〜私のためのHaskell〜総集編

  • Haskellの基本の基本を運用するにあたって設定されている仕組み〜これもプログラミング上は基本
  • 型はグループ化される
    • その1
      • 型のそれぞれを要素とする型集合がある。特徴を共有する型を亜集合として取りまとめる。その亜集合を型クラス・クラスと呼ぶ。
    • その2
      • 型を「代数式」で作り上げていくときに、「式」の項は「型」なわけだが、その「型」に代数変数(型変数)を使うことで、「同様の式で表される複数の型」をグループ化できる
        • 実例がないとわかりにくいので示す。
        • IntかFloatかの違いはあるが、以下の2つの型"HogeInt"と"HogeFloat"はよく似ている。
data HogeInt = KogeInt Int Int
data HogeFloat =KogeFloat Float Float
        • このようなとき
data Hoge a = Koge a a
      • のようにして作ると、"a"にIntを使うか、Floatを使うかの使い分けにより、"Hoge Int"という型と"Hoge Float"という型の2つの型を作ったことになる。
  • 2種類のID名称
    • すべては2つに分類される、ValuesとConstructors。
    • 型で出来たプログラムの構成はConstructorsをノードに持つ。
    • 実際に仕事をするプログラムは、関数に余すところ無く分解されるが、その関数はVariablesである。
    • ただし、型が代数式で入れ子になっていき、関数を書くために関数を使ったりするので、その構造・分解は見方によって異なってきて、複雑にはなる。
    • value ID : 小文字始まり
    • constructor ID : 大文字始まり