함수형프로그래밍 강의 정리(1)
인프런 함수형프로그래밍을 듣고 정리한 글입니다
함수형 프로그래밍이란?
Side Effect를 멀리하고 조합성
을 강조하는 프로그래밍 패러다임 -> 성공적인, 효율적인 프로그래밍을 위해!!
- Side Effect를 멀리한다 ->
순수함수
를 만든다! 조합성
을 강조한다 ->모듈화
수준을 높인다! -> 생산성을 높인다!
순수함수 예제
function add(){
return a+b;
}
- 동일한 인자값을 매번 건네면 항상 동일한 값을 return한다
- Side Effect가 없다 -> 외부의 값, 환경을 직접 변경하지 않는다.
순수함수가 아닌 예제
var c = 10;
function add2(a,b){
return a + b + c;
}
- 인자로 주어진 값이 아닌 함수 밖의 변수
c
를 참조하며 값을 return 하고 있다. - 만약
c
의 값이 바뀌게 된다면 함수는 순수함수가 아니게 된다
var c = 20;
functoin add3(a,b){
c = b;
return a + b;
}
- 같은 인자일 때 항상 동일한 값을 return 한다. 하지만!
- 부수효과가 있는데, 외부 값
c
를 변경시킨다!!!
- 순수함수에서 객체를 다룰 때,
var obj1 = { val : 10 }
function add4(obj, b){
obj.val += b;
}
function add5(obj, b){
return { val : obj.val + b };
}
- 객체의 데이터를 다룰 때 객체의 값을 직접 변경하는 것이 아니다.
- 원래 객체의 값을 변경하는 것이 아닌
새로운 객체
를 만들어 반환한다
순수함수는 평가시점
이 중요하지 않다
일급함수
자바스크립트에서 함수는 값으로
다룰 수 있다.
- 함수를 변수에 담을 수 있고
- 다른 함수의 인자로 건내 줄 수 있다.
이러한 특징을 일급함수 라고 한다
Author And Source
이 문제에 관하여(함수형프로그래밍 강의 정리(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sa02045/함수형프로그래밍-강의-정리1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)