1. 람다 표현식, 람다식 (Lambda Expression)
ㅇ 함수를, 하나의 식(Expression) 그 자체에 포함시켜 표현한 것
ㅇ (어원)
- 함수 정의와 응용에 대한 형식 체계에서 수학적인 단순 표기법으로,
- 함수 매개변수를 람다(λ)로 표시한데서 유래함
ㅇ (익명 함수)
- 만일, 함수 정의 전체를 람다식으로 간략히 표현하게 되면,
- 이때, 이름이 필요 없게 되므로, 익명 함수(Anonymous Function)의 형태가 됨
ㅇ (특징)
- [장점]
. 코드의 간결성 (불필요한 반복문 대신 사용, 복잡한 식을 단순하게 표현 가능)
. 표현식 자체에 개발자의 의도가 명확히 드러나, 가독성이 높아짐
. 병렬 프로그래밍 용이 (멀티 스레드 활용 가능)
- [단점]
. 람다에 의한 익명 함수는 재사용 불가능해짐
.. (람다의 남발은 유사 함수의 중복 생성으로 코드가 지저분해짐)
. 디버깅이 다소 어려움
. 재귀로 만들기에 부적합
ㅇ 例)
- 파이썬) lambda args : expression
. square = lambda (x) : (x**2); square(2) => 4
.. 변수 square에 람다 표현식이 바인딩 됨. 후에 함수 처럼 이를 호출 가능하게 됨
.. 여기서, 람다 표현식 내 x는 바인딩 변수(bound variable) 또는 매개변수
2. 익명 함수 (Anonymous Function, Nameless Function)
ㅇ 이름이 없는 함수로써, 익명 함수들은 모두 일급 객체 임
- (일급 개체 특징 : 일급 함수는 변수처럼 사용가능하며, 매개 변수로 전달이 가능하는 등)
※ [참고] ☞ 자바스크립트 함수 종류 참조