일급함수, add_maker, 함수로 함수 실행하기

Steve·2021년 3월 25일
0
function add(a, b) {
  return a + b;
}

var f1 = function(a) { return a*a; };

var f2 = add;

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

console.log( f3(function() { return 10; } ));
console.log( f3(function() { return 20; } ));

일급함수와 순수함수를 특징을 이용해서 함수의 조합성을 높여나가는 것이 함수형 프로그래밍이다.
언제 호출해도 값이 같은 순수함수를 많이 만들고, 그 순수함수들을 값으로 들고다니면서 적절한 시점마다 평가를 하며 다양한 로직을 만드는것 -> 함수형 프로그래밍이다

function add_maker(a) { // 일급함수 특징중 하나: 함수를 리턴하는 함수, 인자를 받음)
	return function(b) { //함수 안에 있는 함수를 '클로저', 함수를 값으로 다룸
    	return a + b;
    }
}

var add10 = add_maker(10);
console.log(add10(20));

var add5 = add_maker(5);// 언제 호출해도 같은 인자에 대한 리턴값이 같음 : 순수함수 특징

function f4( f1, f2, f3 ) {
	return f3(f1() + f2());
}

console.log(f4(
function() { return 2; },
function() { return 1; },
function(a) { return a * a }));

클로저

  • 내부함수 종료 후에 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근할 수 있는 것을 말합니다.

==요즘 개발 이야기==
실시간성(라이브방송,협업,댓글,메신저)
완성도(무한스크롤,...)
동시성
고가용성
병렬성

aws, python,

함수형 프로그래밍은 애플리케이션, 함수의 구성요소, 더 나아가서 언어 자체를 함수처럼 여기도록 만들고, 이러한 함수 개념을 가장 우선순위에 놓는다.
함수형 사고방식은 문제의 해결방법을 동사(함수)들로 구성(조합)하는것

/ 데이터(객체) 기준 / 객체형 프로그래밍
duck.moveLeft();
dog.moveRight();
/ 함수 기준 / 함수형 프로그래밍
moveLeft(dog);
moveRight(duck);

profile
Front-Dev

0개의 댓글