본문 바로가기

Languages/Vanilla JS

[Vanilla JS] 함수형 자바스크립트의 기본

728x90
반응형

1. 평가와 일급

평가

평가란 코드가 계산되어 값을 만드는 것을 말한다. "1+2"와 같은 코드는 3으로 평가될 수 있으며 "[1,2]"와 같은 코드는 [1,2]로 평가될 수 있다. 

 

일급

일급이란 값으로 다룰 수 있고, 변수에 담을 수 있는 것을 말한다. 

 

일급이란 함수의 인자로 사용될 수 있고 함수의 결과로 사용할 수 있다.

 

2. 일급 함수

자바스크립트에서 함수는 일급이다. 즉 함수를 값으로 다룰 수 있다. 즉 함수를 변수에 담을 수 있다. 

또한 생성된 함수는 값을 담아서 평가된다.

const calA = A=> A+10
console.log(calA)
//A=>A+10
console.log(calA(10))
//20

 

함수는 일급이므로 함수의 결과로 함수가 될 수도 있다. 즉 함수의 return이 함수가 된다. 당연히 평가도 가능하다.

const func = ()=>()=>10
console.log(func)
//()=>10
console.log(func())
//10

 

일급함수는 자바스크립트에서 조합성과 추상화의 도구가 된다.

 

3. 고차 함수

고차 함수란 "함수를 값으로 다루는 함수"를 말한다. 

 

함수를 인자로 받아서 실행하는 함수

func라는 함수가 cal이라는 함수를 인자로 받아서 실행한다. 따라서 func는 고차 함수이다.

const func = f=> f(1)
const cal = a=>a+10
console.log(func(cal))
//11

 

함수를 만들어서 리턴하는 함수

func1 함수를 리턴하며 func2에 인자가 들어왔을 때 계산한다. 

const func1 = a=>b=>a+b
const func2 = func1(10)
console.log(func2)
//b=>a+b
console.log(func2(5))
//15
728x90
반응형

'Languages > Vanilla JS' 카테고리의 다른 글

[Vanilla JS] callback과 Promise  (0) 2022.06.19
[Vanilla JS] map, filter, reduce  (0) 2022.06.16
[Vanilla JS] 순회와 이터러블  (0) 2022.05.17