반응형
함수형 프로그래밍이란?
성공적인 프로그래밍을 위해 부수 효과를 미워하고 조합성을 강조하는 프로그래밍 패러다임
* 부수효과를 미워한다 -> 순수함수를 만든다.
- 순수함수 : 들어온 인자가 같으면 결과가 항상같은 함수
- 부수효과 : 리턴값으로 결과를 만드는것 외에 들어온 인자를 직접 변경하는 등 외부에 영향을 주는것
* 조합성을 강조한다 -> 모듈화 수준을 높인다.
- 모듈화 수준이 높다 : 성공적인 프로그래밍으로 생산성이 높고 팀웍에도 좋고 기획변경에도 대응하기 좋다.
순수함수
👉 받은 인자 외에 다른 외부의 상태에 영향을 끼치않고 리턴값 외에는 외부와 소통이 없다.
👉 순수함수로 함수형 프로그래밍을 할 경우 오류를 줄이고 안정성을 높인다.
올바른 예
1. 항상 동일한 인자를 주면 동일한 결과를 리턴
function add(a,b) {
return a+b;
}
2. 객체를 처리한 경우
함수형프로그래밍은 순수함수를 이용해 값을 변형하거나 다룰때 인자의 값을 변형하지않고 외부의 상태를 변화시키지않는 프로그래밍이다.
그렇다면 함수형 프로그래밍에서는 객체의 값들을 변경할 수 없고 객체를 다룰수 없는가? X
-> 원래 있던 값은 그대로 두고 새로운 값을 만들면서 복사해서 원하는 부분의 값이 변형된 객체를 리턴한다.
//순수함수
var obj1 = {var : 10};
function add5(obj,b){
return {val : obj.val + b};
}
순수함수가 아닌 예
1. 동일한 인자를 주었을때 상황에 따라 결과가 달라지는 함수
-> c의값이 변경될 수 있어서 순수함수가 아니다.
var c=20;
function add2(a,b){
a+b+c;
}
2. 부수효과가 발생하는 경우
-> 함수 밖의 변수인 c에 영향을 줄 수 있다.
var c = 20;
function add3(a,b ) {
c=b;
return a+b;
}
중요한 특징
평가시점이 중요하지않아야한다!
-> 결과가 항상 동일하므로 안정하고 다루기 쉬워져 조합성이 올라가게 된다.
* 인프런 자바스크립트로 알아보는 함수형 프로그래밍 강의를 듣고 정리한 내용입니다.
반응형
'일상 > 면접준비' 카테고리의 다른 글
외국계 면접 후기 2탄 (1) | 2024.10.17 |
---|---|
외국계 면접, 코딩테스트 후기(feat. 영어 울렁증 우욱) (1) | 2024.10.15 |
일급함수와 add_maker 이해하기 (0) | 2022.05.02 |
개발자 면접준비 - 참고하기 좋은 GitHub (1) | 2022.03.23 |
댓글