개발노트

함수형프로그래밍 es5 본문

javascript/functional

함수형프로그래밍 es5

aloha2jh 2021. 2. 9. 17:27

 

function f3 ( f ) {
	return f();
}

인자로 함수를 받아서

return 하면서 함수를 실행

 

함수내부에서 함수를평가해서 함수를 리턴

 

 

함수를리턴하는 함수 add_maker  일급함수, 클로저

 

function add_maker(  ) {
	return function(){
    
    };
}
function add_maker( a ) {
	return function( b ){
    	return a+b;
    };
}


var add10 = add_maker(10); // 1. 이걸실행시키면

var add10 = function( b ){ // 2. 함수를 리턴해주니까 함수가 담김 !!
    	return a+b;
    };

add10(20);  			   // 3. 함수 실행.

 

2의 리턴된 함수를 클로저 임

add_maker ( a ) { //여기스코프에서   }
scope 에서 a라는 값을 참조하고 있고

a라는 값을 기억하는 함수가 되서 (클로저가되서)

 

순수함수가되는 이유는
1. a 라는 값을 참조를 할뿐 변경하고 있지 않음

2. 클로저 함수 내부에서 a라는 값을 직접 변경하고 있진 않아서

 

함수 3개를 받아서, 함수를 리턴하는 함수

function f4( f1, f2, f3 ){ 
	return f3( f1() + f2() );
}
f4(
    function(){ return 1; }
    function(){ return 2; }
    function( a ){ return a * a ; }
)

 

순수한 함수들을 만들고

순수함수들을 조합해서
큰 로직을만들어가는 프로그래밍

 

 

함수를여러번 실행한다거나 할수있는 이점이 있다.

 

'javascript > functional' 카테고리의 다른 글

array의 method 다른객체에 적용하기  (0) 2021.02.22