개발/정리 내용
Lambda
aihtnyc_h
2023. 1. 15. 23:32
728x90
반응형
SMALL
(1) Introduction
1930년 알론조 처치라는 수학자가 처음 제시한 수학 표기
방식인 lambda calculus(람다대수)에 기초
Java에서는 Java8(2014)에서부터 지원
객체지향 프로그램에 함수형 프로그램의 특징이 추가
(2) 함수형 프로그래밍
일반적인 프로그램은 함수끼리 데이터를 주고받는 것
데이터는 이미 존재, 함수끼리 함수를 넘겨줌
함수는 기본적으로 어떤 클래스 소속
=> 나보고 정의하라는 것도 짜증나는데 클래스도 만들라?
=> 심지어 1회성?
=> ... 익명 객체로 하자.
(3) 익명 객체(Annonymous Instance)
첫번째, 데이터 개수는 정해져 있으므로 선언은 가능 => 인터페이스
두번째, 객체를 생성할 때 (클래스X) 메서드를 구현
=> 사용자가 함수를 만들어야 하는데 너무 길어... => 줄여야겠다 => 람다식
(4) 정리
어떤 데잍 타입을 쓸 것인가를 사용자에게 맡기는 것
=> Generic
무슨 함수를 쓸 것인가를 사용자에게 맡기는 것
=> 함수형 프로그래밍
함수형 프로그래밍을 ( )에 넣자니 너무 길고 복잡해
=> 람다식
forEach 등을 활용할 때 주로 사용
(5) 기본 형태
(매개변수, ....) -> { 실행문 }
f(매개변수, ....){
}
(6) 조건에 따라서 더 문법을 간소화
- 매개변수가 1개면 괄호 생략
매개변수 -> { 실행문 }
2) 실행문이 1줄이면 중괄호 생략
매개변수 -> 실행문
3) 매개변수로 특정 함수 1개만 실행하면 매개변수 생략
실행문
4) 실행문이 1줄인데 return만 있는 경우
return 이후만 기술 (예) X -> 3 * X
728x90
반응형
LIST