[Java] 함수형 프로그래밍 - 람다식(Lambda expression)
2022. 2. 22. 02:15ㆍBack-end/Java
자바는 객체를 만들어 맴버 변수를 선언하고 메서드로 기능을 구현하는 객체 지향 프로그래밍이다.
Java 8 버전부터 지원하는 함수형 프로그래밍(람다식)에 대해 알아보자.
함수형 프로그래밍과 람다식
- 자바에서 지원하는 함수형 프로그래밍을 람다식이라고 한다
- 함수의 구현과 호출만으로 프로그래밍이 수행되는 방식이다
- 함수형 프로그래밍(Functional Programming)은 순수 함수(pure function)를 구현하고 호출함으로써 외부 자료에 부수적인 영향(side effect)를 주지 않도록 구현하는 방식이다 (순수 함수 : 매개변수만 사용해 만든 함수)
- 함수를 기반으로 하는 프로그래밍이고 입력받는 자료 외에 외부 자료를 사용하지 않아 병렬처리가 가능하다
- 함수의 기능이 독립적이라서 동일한 자료에 대해 동일한 결과를 보장하고 다양한 자료에 대해 같은 기능을 수행한다
람다식 문법은?
람다식은 익명 함수를 만들고 매개변수(parameter)를 이용해 기능을 수행한다.
두개의 매개변수 값을 받아 더하는 함수를 예제로 살펴보자.
int add(int a, int b) {
return a + b;
}
람다식으로 표현
(int a, int b) -> {return a + b;}
매개변수가 하나면 자료형과 괄호를 생략할 수 있다 (매개변수가 두개 이상이면 괄호 생략 불가)
a -> { System.out.println(a); }
실행문이 한 문장이면 중괄호 생략도 가능하나 return이 있으면 생략할 수 없다
a -> System.out.println(a);
// 오류 : a -> return a.length();
실행문이 한 문장의 반환문이면 return과 중괄호를 모두 생략할 수 있다
(a, b) -> a + b;
a -> a.length;
간단하게 자바의 함수형 프로그래밍인 람다식을 알아보았다.
반응형
'Back-end > Java' 카테고리의 다른 글
[Java] 스트림(Stream) - reduce() (0) | 2022.02.26 |
---|---|
[Java] 스트림(Stream) (0) | 2022.02.24 |
[Java] 객체 지향 프로그래밍 vs 람다식 (0) | 2022.02.23 |
[Java] 함수형 인터페이스로 람다식 구현 (0) | 2022.02.22 |
[Java] 내부 클래스란? (inner class) (0) | 2022.02.21 |