형이 잠깐 리액튼지 뭔지 보다가 "화살표 함수 표현" 이란걸 보게 됨(https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/%EC%95%A0%EB%A1%9C%EC%9A%B0_%ED%8E%91%EC%85%98)


형이야 이게 뭔지 아니까 딱 보면 이걸 왜 이렇게 했는지 어디다 쓸 수 있는지 걍 본능적으로 앎. 불쌍한 조팝들을 위해 신년 메시지로 알려주니 잘 새겨들어라.



뭔저 함수형에 대해 아주 기본을 알아야 된다. 함수형에는 '람다함수' 혹은 '이름없는 함수' 등등으로 불리우는 함수를 표기하는 방법이 있다. 요컨대 함수의 인자와 함수 몸통의 정의가 그 주된 내용인데, 편의상 다음과 같은 예로 대신한다.


(lambda (num1 num2)

(+ num1 num2))


뇌가 잘 안돌아가는 조팝들은 위에걸 다음과 같이 생각하면 된다.


lambda(num1, num2) {

return num1 + num2;

}


형은 타이핑 적게 하는 쪽으로 진행하니, 알아서 듣도록.



전에는 다음과 같이 함수를 정의해 왔을거다.


define sum (num1, num2) {

return num1 + num2;

}


;; 또는


(define sum (num1 num2) (+ num1 num2))



위에걸 설탕을 빼고 로우레벨 "함수형"으로 표현하면


(define sum (lambda (num1 num2)

(+ num1 num2)))


이렇게 된다. 이떄 "define" 은 상수를 정의 할 때 사용하는 프로그래밍 언어 연산으로 생각하면 된다.

즉,

const sum = lambda(num1, num2) { return num1 + num2; }

로 보면 된다.


일단 이게 되면, 니가 map, filter 등등 함수를 인자로 취하는 함수에 'lambda 함수"를 쓸 수 있게 된다.


* * *


자바스크립트 "화살표 함수"란 바로 람다함수의 정의를 도입하겠다는 거다.

"화살표 함수"라는 조팝용 용어를 도입함으로써 함수형이나 람다에 공포심을 갖는 조팝들에게 조삼모사를 택한거지 ㅋ


암튼

(define sum (lambda (num1 num2) (+ num1 num2)))

;; 혹은

(define sum (num1 num2) (+ num1 num2)))

라는 알흠다운 표현을

const sum = (num1, num2) => { return num1 + num2; }

라는 개 조또 골때리는 표현으로 하고 니들에게 딴데서는 쓸모없는 "화살표 함수"라는 개 조팝 용어를 암기하게 한다.




모쪼록 2020년에는 작년보다 잘되라는, 신년을 여는 형의 간단한 메시지다.



한줄요약:


- 조팝언어가 조팝인데는 그만한 이유가 있다.