본문 바로가기

모던자바인액션

(3)
[Part6] 함수형 프로그래밍과 자바 진화의 미래 (A) 1. 함수형 프로그래밍이란 ? (30점) 1) 함수/메서드가 수학의 함수처럼 동작한다. 2) 부작용없이 동작한다. 2. '같은 함수를 호출했을 때 항상 같은 결과를 반환한다'와 가장 깊은 연관성이 있는 단어는 ? (20점) 3 1) 콤비네이터 2) 커링 3) 참조투명성 4) 캐싱 5) 영속 - 커링: 함수를 모듈화하고, 재사용하는데 도움을 주는 기법. x와 y라는 두 인수를 받는 함수 f를 한개의 인수를 받는 g라는 함수로 대체하는 기법. - 영속: 저장된 값이 다른 누군가에 의해 영향을 받지 않는 상태. - 콤비네이터: 두 개 이상의 함수를 인수로 받아 다른 함수를 반환하는 메서드/함수. 3. 다음 중 잘못된 것은 ? (20점) 5 1) 자바 8이상은 일급함수를 지원한다. (O. p.586) - 일급함..
[Part1] Chapter3. 람다 1. 람다 익명함수의 일종. 1.1. 람다의 특징 익명 보통의 메서드와 달리 이름이 없으므로 람다를 익명이라 표현한다. 익명이므로 구현해야 할 코드가 줄어든다. 함수 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 람다 표현식을 메서드 인수로 전달하거나 (동작 파라미터화) 변수로 저장할 수 있다. 간결성 익명클래스 처럼 많은 자질구레한 코드를 구현할 필요가 없다. 1.2. 람다의 구조 //람다는 return이 함축되어 있음 int slen = (String s) -> s.length(); //람다 바디 중괄호 안에 여러 행의 문장을 포함할 수 있음 (int x, int y) -> { Syste..
[Part1] Chapter2. 동작 파라미터화 코드 전달하기 0. 목적 변화하는 요구사항에 유연하게 대응할 수 있는 코드를 구현하자. - 비용은 최소화 - 구현은 쉽게 - 유지보수가 쉽게 동작(Behavior) 파라미터화 메서드가 다양한 '동작'을 받아서 내부적으로 다양한 동작을 수행할 수 있다. 말 그대로 동작이 파라미터로 사용된다. 1. 변화하는 요구사항에 대응하기 🧑‍🌾 : 나는 녹색 사과만 보고싶어. 1.1. 녹색 사과 필터링 public enum Color { RED, GREEN } @Data @AllArgsConstructor public class Apple { public Color color; } public class 녹색사과필터링 { public static List filterGreenApplesList(List inventory){ List..