Swfitのカリー化関数 (Curried Functions in Swift)
環境
カリー化関数の構文
func 関数名 (引数) -> (引数) -> 戻り値の型 { return { (引数) -> 戻り値の型 ボディ } }
カリー化関数の例
カリー化されていない関数 plus
func plus(a: Int, b: Int) -> Int { return a + b }
plusをカリー化した関数 plusc
func plusc(a: Int) -> Int -> Int { return { (b: Int) -> Int in a + b } }
pluscを使った例
plusc(1)(2) // 出力:3 let addOne = plusc(1) // addOneの型は Int -> Int