意味
- 関数を返す関数を作り、プログラムの共通化を図る。
- 言語に関係なく共通する概念であるが、ここではtypescriptで説明します。
例文
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を返す。
メリット
- 共通化によってバグを防ぐことができる。
- まとまった処理を分割することによって、複雑度を下げつことができる。
例文
typescript
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を入れなくても良い。