티스토리 뷰

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 })

 

 

왕초보를 위한

안녕하세요 :) Zedd입니다. 저번에 에서 곰튀김님이 설명해주신 "Functional Reactive Programming 패러다임"을 듣고... 아 사람들이 그렇게 리액트, 리액트 하는지..그 리액트가 어떤건..

zeddios.tistory.com

 

고차함수

클로저

 

'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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함