IT_susu

순수함수란? 본문

computer science

순수함수란?

고베베 2018. 10. 19. 21:15


순수함수는 입력이 같다면 출력도 항상 같은 값이 나오는 것입니다. 외부의 상태를 변경하지 않는 함수(=> 평가 시점이 중요하지 않다.)



순수함수의 예


function add(a, b) {
return a+b;
}

=> 

1. 동일한 값이 항상 리턴된다.

2. 외부상태를 바꾸지 않는다.




const c = 10;
function add2(a, b) {
return a + b + c;
}

=>

1. 함수 외부에 존재하는 c의 값이 변하지 않으므로 순수함수다. ( 만일 c의 값에 변경여지가 있다면 순수함수가 아님)

2. 외부 상태(c)를 함수가 바꾸지 않는다.



var obj1 = { val : 10 };
function add5(obj, b) {
return { val : obj.val + b }
}
console.log( obj1.val ); // 10
var obj2 = add5(obj1, 20);
console.log( obj1.val ); // 10
console.log( obj2.val ); // 30

=>

1. 함수 외부에 존재하는 obj1의 값을 바꾸지 않으므로 순수함수다.

Comments