람다식

함수형 프로그래밍

  • 객체를 만들고 객체 내부에 멤버 변수를 선언하고 기능을 메서드로 구현
  • 함수형 프로그래밍 방식을 람다식이라고 한다
  • 함수형 프로그래밍(Functional Programming: FP)
    함수형 프로그래밍은 순수함수(pure function)를 구현하고 호출함으로써 외부 자료에 부수적인 영향(side effect)를 주지 않도록 구현하는 방식입니다. 순수 함수란 매개변수만을 사용하여 만드는 함수 입니다. 즉, 함수 내부에서 함수 외부에 있는 변수를 사용하지 않아 함수가 수행되더라도 외부에는 영향을 주지 않습니다.
    함수를 기반으로 하는 프로그래밍이고 입력받는 자료 이외에 외부 자료를 사용하지 않아 여려 자료가 동시에 수행되는 병렬처리가 가능합니다.
    함수형 프로그래밍은 함수의 기능이 자료에 독립적임을 보장합니다. 이는 동일한 자료에 대해 동일한 결과를 보장하고, 다양한 자료에 대해 같은 기능을 수행할 수 있습니다.

람다식 문법

  • 익명 함수 만들기 (함수의 이름이 없다!)
  • 매개 변수와 매개 변수를 이용한 실행문 (매개변수) -> {실행문;}
  • 두 수를 입력받아 더하는 add 함수 예시
  • 함수를 람다식으로 만들기 위해 함수 인터페이스를 먼저 구현한다
public interface Add {

    int add(int x, int y);
}
  • 비어있는 add 메서드에 람다식을 대입하는 방식으로 인터페이스를 구현한다
Add add = (x, y) -> {return x+y;}; // 인터페이스를 구현한 것
// 매개변수가 하나인 경우 자료형과 괄호 생략 가능
// 실행문이 한 줄인 경우 중괄호 생략 가능
// Add add = (x, y) -> return x+y; //return이면 생략 불가
//Add add = (x, y) -> x+y; return까지 생략하면 가능
System.out.println(add.add(2, 3));

함수형 인터페이스 선언하기

  • 람다식을 선언하기 위한 인터페이스
  • 익명함수와 매개 변수만으로 구현되기 때문에 인터페이스 안에 하나의 메서드만 있어야 한다
    구현할 때 어느 메서드를 구현하는지 모호해지기 때문이다
  • @functionalInterface를 인터페이스에 붙이면 하나의 메서드만 인터페이스에 선언할 수 있도록, 두 개 이상을 선언 하면 오류가 나도록 만든다
  • 최대 값을 반환하는 Max 함수를 람다식으로 구현
MyNumber myNumber = (x, y) -> x > y ? x:y;
System.out.println(myNumber.getMax(10,20));
profile
안녕하세요. Chat JooPT입니다.

0개의 댓글