형이 잠깐 리액튼지 뭔지 보다가 "화살표 함수 표현" 이란걸 보게 됨(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년에는 작년보다 잘되라는, 신년을 여는 형의 간단한 메시지다.
한줄요약:
- 조팝언어가 조팝인데는 그만한 이유가 있다.
조팝언어라는거엔 틀린건없는데 this arguments 이런거시 없으니 엔진상의 함수생성이 간결해지는건 사실임
const sum = (num1, num2) => { return num1 + num2; } 를 const sum = (num1, num2) => num1 + num2; 로 쓸 수 있는데 이건 안알려주십니까 슨상님
?
존나 쓸데없는걸 만들어놧네 헷갈리게 쨋든 정성추 - dc App
쓸대있어욧 힝힝...
이 쉥퀴덜 존나 쓸데없는 것만 싸질렀네ㅋ. 사실 그냥 기존걸 고치면 되럴 저런 지랄을 떤건 호환성 때문이다. 조팝언어 일수록 조팝 코드가 많고 그걸 다 돌아가게 유지하면서 계속 허무맹랑한 용어로 기존건 냅두고 존나 희안한걸로 땜방하려들지. 게다가 별 필요치도 않은 특수 케이스를 덧대서 존나 암기할걸 늘려간다. 조팝 언어가 조팝인덴 다 이유가 있다
그건 글킨함
그놈의 호환성 ㄹㅇㅋㅋㅋ
형님 멋있습니다