代数的データタイプと関数プログラミング

  • 加算と乗算
    • 代数的データタイプでは、OR・加算とAND・乗算とでデータタイプが拡張する
    • 0,1,2,...と広がっていくのは加算
    • (x,y)とするのは乗算
    • 加算はある意味では「次元をそのままに、すでにあるものを伸ばす」こと
    • 乗算は次元を上げること
  • 1つの次元
    • 各次元の「様態」には、「数」が対応する(か?)
    • 整数、有理数無理数、実数、複素数、行列…
    • 次元をそのままに、「方向」を考えることもできる(か???)
    • 二分木も代数的データタイプ。ある意味で、これも1次元。ある意味とはデータタイプの定義として積を使わないという意味
  • 数と代数的数
    • 代数的数とは「何かの解になっている数」
    • 言い換えると、式を作ることがその数を表すこと
  • 関数的プログラミング
    • すべてを関数で表す
    • 関数で表せたものが「存在」
    • 関数で表せないものもある
    • 代数的数はその代数式を書くことにより関数プログラミングの1要素にできる
    • 代数的でない数は関数プログラミングでは関数として書き下せない
  • 関数プログラミングの計算可能性
    • 代数的数に対応するものが計算可能性
  • メモ