IT/Java

[JAVA] 람다식 개념

상짱 2024. 5. 4. 00:33
반응형

 

람다식 개념


(x,y) -> x + y

 

람다식이 표현하는 것은, 본질적으로 메서드 그 자체라고 말할 수 있다.


- 함수와 메서드

메서드는 클래스의 멤버이기 때문에 클래스 정의 안에서 메서드 정의를 기술한다.

함수는, 그 자체가 오브젝트로 본다.


메서드는 오브젝트에 포함되어 있지만, 함수는 노출되어 있는 상태이다.

JAVA객체 지향 프로그밍의 대표이며,

더 오래된 함수형 프로그래밍 언어는 함수를 First-class Object로 취급한다.

함수를 리터럴과 같이 취급이 가능한 오브젝트 그 자체로 인식

리터럴이라는 것은 데이터 그 자체를 의미한다.

문자열 리터럴은 실제로는 String 클래스의 인스턴스이다.

JAVA의 문자열은, 리터럴과 같이 취급할 수 있는 오브젝트인 것이다.

함수도 이 관계와 동일하다.

함수형 프로그래밍 언어
1. 변수에 함수를 대입가능.
2. 함수의 인수에 함수를 건네는 것이 가능.
3. 함수의 반환값으로 함수를 반환하는 것이 가능.

2번과 3번을 만족하는 함수를 고계함수라고 불린다.

고계함수란, 함수를 다루는 함수를 뜻한다.

자바의 메서드를 변수에 대입하거나, 인수로 건네거나, 반환값으로 수신하거나 문법 구조상 생각할 수 없다.

그래서, 함수=메서드가 아닌 함수≒메드라고 표현한다.

JAVA8부터 개념적으로 함수가 도입된 것.

---

JAVA의 람다식은 결국 뭔가요? 
- 개념적으로는, 함수입니다.
- 현실적으로는, 함수형 인터페이스의 이름 없는 클래스에 의해 구현한 간결하게 기술할 수 있도록 하는 것입니다.

[하나의 추상 메서드]의 선언을 포함한 인터페이스를 [함수형 인터페이스]라고 부른다.

 

- 자바8 람다식 해설서 中

반응형