스터디/함수형 프로그래밍 with 자바

    Chapter 03. JDK의 함수형 인터페이스

    Chapter 03. JDK의 함수형 인터페이스

    3.1 네 가지 함수형 인터페이스Function: 인수를 받고 결과를 반환합니다.Consumer: 인수만 받고 결과를 반환하지 않습니다.Supplier: 인수를 받지 않고 결과를 반환합니다.Predicate: 인수를 받아서 표현식에 대해 테스트하고 boolean 값을 결과로 반환합니다.Function하나의 입력과 출력을 가진 전통적인 함수Function은 하나의 입력값을 받아 하나의 결괏값을 반환한다.@FunctionalInterface public interface Function { R apply(T t); } public class FunctionExample { public static void main(String[] args) { Function intToStr..

    Chapter 02. 자바 람다

    2.1 자바 람다란?람다 표현식은 자바 코드가 한 줄 또는 블록 단위로 이루어져 있으며 0개 이상의 매개변수를 갖고 값을 변환할 수 있다.public class BasicLambda { public static void main(String[] args) { Runnable greet = () -> System.out.println("Hello, Labmda!"); greet.run(); }}람다 문법매개변수메서드의 인수와 마찬가지로 쉼표로 구분합니다. 컴파일러가 매개변수의 타입을 추론할 수 있는 경우 매개변수의 타입을 생략할 수 있습니다.묵시적으로 타입이 지정된 매개변수와 명시적으로 타입이 지정된 매개변수를 혼용하는 것은 허용되지 않습니다.매개변수가 하나인 경우 괄호..

    Chapter 01. 함수형 프로그래밍 소개

    함수형 프로그래밍 소개어떤 것이 언어를 함수형으로 만드는가?프로그래밍 언어가 추상 함수(abstract function)을 생성하고 조합함으로써 논리 연산을 표현할 수 있을 때 함수형 언어로 간주.람다 대수를 구성하는 세가지 구성 요소- 추상화: 단일 입력을 받는 익명 함수, 람다를 의미- 응용: 값에 추상화가 적용되어 결과를 생성. 개발자의 관점에서는 함수나 메서드 호출을 의미.- 베타 축약: 추상화된 변수를 적용된 인수로 대체제어 흐름이나 알고리즘을 설명하지 않고, 연산의 논리를 선언적 문장으로 표현할 수 있다.함수형 프로그래밍은 불변성을 강조하며, 상태를 변경하는 대신 새로운 상태를 생성한다.문장이 아닌 표현식을 사용하여 결과와 프로그램이 작동하는 방식을 설명.무엇을 해야하는지가 아닌, 무엇을 원하..