カリー化とは

意味

  • 関数を返す関数を作り、プログラムの共通化を図る。
  • 言語に関係なく共通する概念であるが、ここではtypescriptで説明します。

例文

const add = (x:number) => (y:number) => x + y
const add1 = add(1)
const result = add1(2) // 3

説明

関数addは引数xを受け取ると、(y:number) => x + yを返す関数。
add関数の引数として1を入れると、(y:number) => 1 + yの返すようになる。
返された関数の引数yに対して2を入れると、(2) => 1 + 2が成立され、3を返す。

メリット

  • 共通化によってバグを防ぐことができる。
  • まとまった処理を分割することによって、複雑度を下げつことができる。

例文

const add = (x:number, y: number) => x + y
add(1, 2)  //  3
add(1, 3)  //  4
add(1, 100)  //  101

説明

  • 毎回第一引数として1を入れているため、バグが起きる恐れがある。
  • 引数xに1を入れた関数を作れば、引数xに毎回1を入れなくても良い。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です