티스토리 뷰
Functional Programming은 "자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다" . OOP나 절차지향같은 프로그래밍 방법들을 배운 것처럼, 함수형 프로그래밍도 그의 한 예제이다.
Functional Programming의 가장 큰 특징 중 하나는 순수함수이다.
순수함수란, 부작용(side-effect)이 없는 함수, 즉, 함수의 실행이 외부에 영향을 끼치지 않는 함수를 뜻한다.
- 순수함수는 입력으로 주어진 것 외의 연산은 실행 하지 않음
- 순수함수는 부수효과(side effect)가 없어야 함
- 입력이 동일하면 출력이 동일해야함
- 상태의 변화가 없어야함
add(1,2) 이런 함수는 순수 함수라고 볼 수 있다. 어떤 값이나 상태를 바꾸지도 않고, 입력이 동일하면 출력이 동일하니까!
또 다른 특징은 익명함수(anonymous function) 이다.
스위프트의 클로저 자체가 익명함수이다 :)
{ () -> Void in
print("Hello World!")
}
마지막 특징은 고차함수다.
Swift의 map, filter, reduce를 이용하면 된다.
출처: https://zeddios.tistory.com/303 [ZeddiOS]
print((1..10).reduce(0) { $0 + $1 })
고차함수
클로저
'macOS, iOS' 카테고리의 다른 글
iOS 버전 체크를 하는 올바른 코드 (0) | 2019.07.05 |
---|---|
swift의 고차 함수 (0) | 2019.07.04 |
Nil Coalescing Operator(Nil 병합 연산자) ?? (0) | 2019.07.04 |
[Swift] Optional Binding (0) | 2019.07.04 |
becomeFirstResponder() (0) | 2019.07.04 |