Life Developer
인생 개발자
순수함수가 무엇?

함수형 프로그래밍에서 순수함수라는 것이 나온다.

 

순수함수는 말 그대로 순수한 함수다.

 

function add(a,b){

       return a+b;

}

 

이것이 순수함수인가?

 

그렇다.

 

순수함수를 결정하는 조건이 몇가지가 있다.

 

첫번째로 항상 동일한 인자를 주면 항상 동일한 값을 리턴한다. 이다.

 

let c=20;

function add(a,b){

       return a+b+c;

}

 

이것은 순수함수인가???

 

아니다.

 

조건 두번째로 부수효과가 없어야한다.

 

외부의 인자가 함수 안에서 변경이 되면 안된다.

 

c는 얼마든지 바꿀수 있다.

 

그럼 const 로 선언을 하면 될까?

 

const c=20;

function add(a,b){

       return a+b+c;

}

 

이렇게 되면 add는 순수함수가 된다.

 

c는 절대로 바뀌지 않으니까 말이다.

 

 

객체의 경우도 보자.

 

let obj1={ val : 10 };

function add4(obj, b){

         obj.val = obj.val+b;

}

 

이것도 역시 순수함수가 아니다.

 

obj1 객체의 val의 값이 바뀌기 떄문이다.

 

이걸 해결하려면 그냥 객체를 통째로 return 하면 된다.

 

이렇게 말이다.

 

let obj1={ val : 10 };

function add4(obj, b){

         return { val : obj.val + b };

}

 

 

다음은 일급함수가 무엇인지 알아볼 것이다.

'Developer' 카테고리의 다른 글

오라클 DECODE  (0) 2020.07.24
일급함수가 무엇?  (0) 2020.07.24
함수형 프로그래밍  (0) 2020.07.24
프레임 워크와 라이브러리의 차이  (0) 2020.07.24
디자인 패턴 종류  (0) 2020.07.24
  Comments,     Trackbacks