-
순수함수 Pure functionSwift 2020. 8. 4. 21:42728x90
순수 함수란 수학에서 사용하는 함수를 떠올리시면 좋습니다.
f(x) -> y
위 함수의 의미는 아시겠죠? x를 넣으면 y가 나온다.
네 프로그래밍에서 말하는 순수 함수도 정말 순수하게 '수학에서 사용하는 함수처럼' 동작하는 함수에
가깝게 만들자 라는 취지에서 출발했다고 합니다.프로그래밍에서 순수 함수는 다음 정의를 따릅니다.
-
동일한 입력에는 항상 같은 값을 반환해야 한다.
-
함수의 실행은 프로그램의 실행에 영향을 미치지 않아야 한다. (Side effect 가 없어야 한다)
-
예를 들어, 함수 내부에서 인자의 값을 변경하거나 프로그램 상태를 변경하는 것
-
수학에서의 함수처럼 동일한 입력에는 항상 같은 값을 반환해야 합니다.
그리고 함수의 결과가 외부에 영향을 주지도, 받지도 않는 함수를 순수함수 라고 합니다.우리는 쉽게 순수함수가 아닌 함수들을 볼 수 있습니다.
랜덤값을 출력하는 랜덤 함수, 콘솔로그나 프린트처럼 파라미터가 없이도 동작하는 함수 들은 순수함수가 아닙니다.
또 파라미터를 받아도 외부의 상태에 따라 다른 값을 출력해준다면, 역시 순수함수가 아닙니다.
동일한 입력에는 항상 같은 값을 반환해야 합니다.순수함수로 만들면 사이드 이펙트가 없으니 테스트 하기도 쉽고 로직도 명료해지니까 가능하다면 순수함수에 가깝게 만들면 좋겠죠 :)
하지만 쉽지만은 않은 것 같습니다 ㅠㅠ감사합니다!
'Swift' 카테고리의 다른 글
ARC (Automatic Reference Counting) (0) 2021.01.11 defer (0) 2020.09.21 람다 λ lambda (0) 2020.08.04 Reduce (0) 2020.08.04 ~= 연산자 in Swift (0) 2020.07.07 -