-
[JavaScript] 순수함수 / 비순수함수 (함수형 프로그래밍)Programming Language/JavaScript 2022. 6. 7. 23:39
※본 포스팅은 개인 학습을 목적으로 작성된 것이므로 정확하지 않은 정보가 포함되어 있을 수 있음을 참고 부탁드립니다.
코드리뷰를 받으면서 언급된 순수함수에 대해서 알아보기로 했다. 🧐
1. 순수함수
우선 깔끔하게 위키를 던져본다. 크게 두 가지로 순수 함수에 대해 정의했다.
1) the function return values are identical for identical arguments (no variation with local static variables, non-local variables, mutable reference arguments or input streams)
👉 들어온 인자가 같을 경우 결과(return)가 항상 같은 함수
2) the function application has no side effects (no mutation of local static variables, non-local variables, mutable reference arguments or input/output streams)
👉외부 상태를 변경하거나 외부의 영향을 받지 않는 함수
// JS function add(a, b) { // 동일한 인자를 주면 동일한 결과를 리턴 return a + b }
2. 비순수함수
👉 함수 외부 상태에 의존하거나 상태에 따라 return 값이 달라지는 함수
// C++ int f() { // because of return value variation with a non-local variable return x; } // JS let a = 5; // a의 값에 따라 add 함수의 return 값이 달라질 수 있음 function add(b, c) { return a + b + c }
📚 함수형 프로그래밍: side effect를 없애고 순수 함수를 만들어 모듈화 수준을 높이는 프로그래밍 패러다임
'Programming Language > JavaScript' 카테고리의 다른 글
코어 자바스크립트 | 자바스크립트 기본 2 (0) 2022.04.17 코어 자바스크립트 | 자바스크립트 기본 1 (0) 2022.04.14 코어 자바스크립트 | 소개 (0) 2022.04.14 [JavaScript] JS에서의 배열은 배열이 아니다? (0) 2022.02.05 [JavaScript] charAt(), charCodeAt(), String.fromCharCode() (0) 2022.02.01