Open19

{ 関数型単語帳 : [ TypeScriptで関数型プログラミング ] }

tomixytomixy

To 関数型 From 命令型

例えば階乗を求めるなら、

  • 命令型は 「階乗をどう求めるか」の手順 …制御フロー
  • 関数型は 「階乗とは何であるか」の定義 …関数

を記述する。

tomixytomixy

successor:後者

succ関数は後者が明確に定義されているものを何でもいいから引数として受け取り、その値を返す。

  • 整数なら : 後者 = 次に大きい数
  • 配列なら : 後者 = 次の要素
tomixytomixy

zip:綴じ合わせ

zip

2つのリストを綴じ合わせて返す

zipWith

2つのリストの各要素に関数を適用すること、2つのリストを結合する

tomixytomixy

高階関数

引数として関数を取ったり、返り値として関数を返したりできる関数。

tomixytomixy

カリー化関数

常にちょうど一つの引数をとる関数。

tomixytomixy

部分適用

関数を本来より少ない引数で呼び出すこと。

tomixytomixy

flip

最初の2つの引数が入れ替わった関数を返す

tomixytomixy

map

関数をリストの全ての要素に適用して新しいリストを生成する

tomixytomixy

filter

リストの要素のうち、述語を満たすもののみ残したリストを返す

tomixytomixy

ラムダ式

1回だけ必要な関数を作るときに使う無名関数。

  • 高階関数に渡す関数を作るためだけに使われる