関数とはドメイン(入力)とレンジ(出力)の集合の関係のこと
#関数型プログラミング
from
単体テストの考え方/使い方
集合をドメイン(入力の集合)とレンジ(出力の集合)と呼ぶ
関数は、ドメインの各要素に対してレンジの要素へと変換する
特定の入力に対しては常に同じ出力が得られる
#参照透過性
「関数は入力を出力にマッピングする」法則を記したもの
集合論
的に考えると、関数は命令の手続きじゃなくて、入力の集合を出力の集合へと変換する
集合そのものを
型
で表す
型でドメインを構築できてるかが一番大事
#Domain_Modeling_Made_Functional