함수형프로그래밍 강의 정리(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를 변경시킨다!!!
  1. 순수함수에서 객체를 다룰 때,
var obj1 = { val : 10 }
function add4(obj, b){
  obj.val += b;
}
function add5(obj, b){
  return { val : obj.val + b };
}
  • 객체의 데이터를 다룰 때 객체의 값을 직접 변경하는 것이 아니다.
  • 원래 객체의 값을 변경하는 것이 아닌 새로운 객체 를 만들어 반환한다

순수함수는 평가시점 이 중요하지 않다

일급함수

자바스크립트에서 함수는 값으로 다룰 수 있다.

  • 함수를 변수에 담을 수 있고
  • 다른 함수의 인자로 건내 줄 수 있다.

이러한 특징을 일급함수 라고 한다

좋은 웹페이지 즐겨찾기