본문 바로가기
#컴퓨터 과학 [Computer Science]/SwiftUI

[SwiftUI] 함수형 프로그래밍

by cy_mos 2023. 7. 31.
반응형
카테고리 게시글 작성 날짜 게시글 최근 수정 날짜 작성자
SwiftUI 2023.07.31. 21:49 2023.07.31. 21:49 Dev.Yang

 

※ 커링 (Currying)

여러개의 파라미터를 받는 함수를 하나의 파라미터를 받는 여러 개의 함수로 쪼개는 것을 뜻합니다. 

 

func multiply(_ a: Int) -> (Int) -> Int {

    return { b in 
        return a * b
    }
}

let area = multiply(10)(20) //200

 

커링 (Currying) 작업을 수행하는 이유?

함수의 Output이 다른 함수의 Input으로 연결되면서 합성(Composition)됩니다. 함수들이 서로 chain을 이루면서 연속적으로 연결이 되려면, Output과 Input의 타입과 개수가 같아야 합니다. 함수의 Output은 하나밖에 없으니 Input도 모두 하나씩만 갖도록 한다면 합성하기가 쉬워질 것입니다. 결국 함수의 합성을 원활하게 하기 위해서 커링을 사용하는 것입니다.

 

※ 합성(Composition)

함수의 반환값이 다른 함수의 입력값으로 사용되는 것을 뜻하며, 함수가 합성되기 위해서는 함수의 반환값과 반환값을 입력으로 받아들이는 값은 타입이 서로 같아야 합니다.


🚀 REFERENCE

반응형

댓글