generated at
部分関数
partial function
全ての定義域に対し、値域への対応がされてないものがある関数
つまり写像の条件を満たしていない
部分関数f:A\rightarrow Bを考えた時、
あるa_1\in Aでは、f(a_1)\in Bがあるが、
あるa_2\in Aでは、f(a_2)\notin Bである
定義先が未定義なものを形式上f(x)=\botと書いたりする
対になるものは全域関数

自然数上の1変数部分関数fの定義域と値域
定義域
\{x\in\mathbb{N}|f(x)\downarrow\}
値域
\{y\in\mathbb{N}\;|\;\exist\vec{x}\in\mathbb{N}^k;f(\vec{x})=y\}


rational function
Haskell
書き方に工夫すれば部分関数を避けられる
例えば、要素アクセスを xs !! 2 ではなく、 drop を使うとか



参考