함수를 First class object (일급객체)로 사용할 수 있다.
순수 함수 Pure function
- 사이드 이팩트가 없다 (함수 밖에 있는 값을 변경하지 않는다.)
- 상태가 없다 (함수 밖에 있는 값을 사용하지 않는다.)
고차 함수 Higher-Order Function
- 함수가 함수를 매개변수로 받을 수 있고 함수를 리턴할 수도 있다.
불변성
인터페이스
public interface IsInter {
abstract int isNum(int);
}
기존 방식의 인터페이스 활용
IsInter isinter = new IsInter() {
@Override
public int isNum(int number) {
return number + 10;
};
};
System.out.println(isinter.isNum(5));
람다식 적용 인터페이스 활용
IsInter isinter3 = (number) -> number + 10;
IsInter isinter4 = (number) -> {
if (number % 2 == 0)
System.out.println("this is odd");
return number;
};
System.out.println(isinter3.isNum(5));
System.out.println(isinter4.isNum(5));