※※ 그저 공부하는 흐름대로 작성한 것이니 정돈된 글이 아님 주의 ※※
Lambda 식이란
Lambda 는 함수에 대한 이론적 기반을 세우는 수학적 추상화를 뜻하고
이것을 프로그래밍에 녹여서 표현한 것이 Lambda 표현식이다.
프로그래밍에서 Lambda 에 근간을 두어 설계한 패러다임이 함수형 프로그래밍이다.
함수형 프로그래밍은 함수의 입력만을 의존하여 출력을 만드는 프로그래밍 패러다임이다.
함수 개념에 근간을 두어 설계하였기에 다음과 같은 특징을 가진다.
- 함수를 객체로 사용함으로써 값으로 할당하거나 파라미터로 전달이 가능하다. (고계함수)
- 함수를 불변상태로 규정하여 부작용을 최소화하고 멀티 스레드 환경에서 동기성 문제에 안전하다. (순수함수)
- 코드를 간결하게 하여 가독성을 높임으로써 로직에 집중시킨다. (익명함수)
Java 8 이전에는 함수에 대한 특별한 개념이 없었고 지원하는 기능도 없었다. 하지만 Java 8 에서부터 람다식과 함수형 인터페이스라는 개념을 도입하여 인터페이스 안에 단 하나의 함수를 선언하여 이것을 객체처럼 사용하고 람다식으로 표현이 가능하도록 지원하였다. 또한 단 하나의 함수만 들어가는 것을 보장하기 위해 @FunctionalInterface 라고 선언함으로써 컴파일 타임에 에러를 잡을 수 있게 하였다.
반응형
'gyub's 공부일기 > 그저 내 공부' 카테고리의 다른 글
자바에서 클래스 다중상속을 막은 이유 (0) | 2021.04.03 |
---|---|
ListView vs RecyclerView (0) | 2021.04.03 |
Java 메모리 구조 Heap, Data, Stack (0) | 2021.04.03 |
제네릭 (0) | 2021.04.01 |
Iterator (0) | 2021.04.01 |