19.1 함수는 모든 곳에 존재한다

  • 일반값처럼 취급할 수 있는 함수를 일급 함라고 한다.
  • 자바8에서는 :: 연산자로 메서드 참조를 만들거나 람다 표현식으로 직접 함숫값을 표현해서 메서드를 함숫값으로 사용할 수 있다.

19.1.1 고차원 함수

  • 다음 중 하나 이상의 동작을 수행하는 함수를 고차원 함수라 부른다.
    • 하나 이상의 함수를 인수로 받음
    • 함수를 결과로 반환

19.1.2 커링

  • 함수를 모듈화하고 코드를 재사용
  • x와 y라는 두 인수를 받는 함수 f를 한 개의 인수를 받는 g라는 함수로 대체하는 기법

19.2 영속 자료구조

  • 함수형 자료구조, 불변 자료구조로도 불린다.
  • 영속: 데이터베이스에서 프로그램 종료 후에도 남아있음을 의미하는 영속과는 다르다.

19.2.1 파괴적인 갱신과 함수형

19.2.2 트리를 사용한 다른 예제

19.2.3 함수형 접근법 사용

  • 결과 자료구조를 바꾸지 말라

19.3 스트림과 게으른 평가

  • 스트림은 단 한번만 소비할 수 있다는 제약이 있어서 스트림은 재귀적으로 정의할 수 없다.

19.3.1 자기 정의 스트림

  • 소수 스트림 계산

19.4 패턴 매칭

  • 패턴 매칭은 함수형 프로그래밍을 구분하는 또 하나의 중요한 특징이다.

19.4.1 방문자 디자인 패턴

  • 방문자 디자인 패턴을 사용하면 자료형을 언랩할 수 있다.
    • 특정 데이터 형식을 '방문'하는 알고리즘을 캡슐화 하는 클래스를 따로 만들 수 있다.

19.4.2 패턴 매칭의 힘

19.5 기타 정보

19.5.1 캐싱 또는 기억화

19.5.2 '같은 객체를 반환함'은 무엇을 의미하는가?

19.5.3 콤비네이터

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN