스크랩

구간

순수 함수형 데이터 구조 불변성과 지연 계산을 활용한 함수형 데이터 구조

크리스 오카사키 저 | 오현석 역 | 에이콘출판 | 2019년 11월

미리보기 북트리

정가
$70.00
판매가
$51.03 (27%↓) 최저가 보상
적립금
$1.02 (2%P)
출고예상일
2026년 10월 08일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9791161753515 / 352쪽 150 x 228 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

  • 19,800
  • 23,400
  • 31,500
  • 21,420

책 소개

반디앤루니스 리뷰

불변성(immutability)과 지연 계산(laziness)을 활용해 100% 함수적으로 만든 데이터 구조와 알고리즘도 명령형 데이터 구조나 알고리즘만큼 성능이 좋을 수 있다는 것을 보여준다. 그리고 함수형 데이터 구조를 만들기 위한 몇 가지 방법을 제시한다. 함수형 프로그래밍을 공부하는 사람들 사이에서는 일종의 고전으로 자리잡은 중요한 책으로, 데이터 구조만 다루지 않는다. 이 책에서 제시하는 여러 기법을 이용해 직접 코드를 작성하고 분석하다 보면 함수형 프로그래밍 방식에 눈뜰 수 있을 것이다.

출판사 리뷰

저자 소개

  • 저자 : 크리스 오카사키
저자 : 크리스 오카사키 (Chris Okasaki)
미국 육군사관학교(United States Military Academy)에서 컴퓨터 과학의 부교수로 있으며, 이전에는 콜롬비아 대학교(Columbia University)와 글래스고 대학교(University of Glasgow)에서도 학생들을 가르쳤다.

역자 : 오현석
KAIST에서 전산학 학사와 석사 학위(프로그래밍 언어 연구실)를 취득했다. 삼성 메디슨, 비트앤펄스 등에서 UI 개발자와 개발 팀장을 지냈고, 현재 호주 브리즈번 JNF Soft에서 소프트웨어 개발자 및 컨설턴트로 일하면서 최근에는 블록체인 관련 기반 기술 연구개발과 블록체인을 활용한 서비스 개발에 참여하고 있다. 함수형 프로그래밍을 활용해 오류 발생 가능성이 적으면서 유지 보수가 편한 프로그램을 작성하는 방법과 이를 지원하는 여러 도구를 만드는 일에 관심이 많다. 『Programming in Scala 3/e』(에이콘, 2017), 『Kotlin in Action』(에이콘, 2017), 『엔터프라이즈 자바 마이크로서비스』(한빛미디어, 2019) 등 20여 권의 책을 번역했다.

역자 소개

  • 역자 : 오현석
KAIST에서 전산학 학사와 석사 학위(프로그래밍 언어 연구실)를 취득했다. 삼성 메디슨, 비트앤펄스 등에서 UI 개발자와 개발 팀장을 지냈고, 현재 호주 브리즈번 JNF Soft에서 소프트웨어 개발자 및 컨설턴트로 일하면서 최근에는 블록체인 관련 기반 기술 연구개발과 블록체인을 활용한 서비스 개발에 참여하고 있다. 함수형 프로그래밍을 활용해 오류 발생 가능성이 적으면서 유지 보수가 편한 프로그램을 작성하는 방법과 이를 지원하는 여러 도구를 만드는 일에 관심이 많다. 『Programming in Scala 3/e』(에이콘, 2017), 『Kotlin in Action』(에이콘, 2017), 『엔터프라이즈 자바 마이크로서비스』(한빛미디어, 2019) 등 20여 권의 책을 번역했다.

목차

1장. 소개
1.1 함수형 데이터 구조와 명령형 데이터 구조 비교
1.2 미리 계산하는 언어와 지연 계산 언어
1.3 용어
1.4 접근 방법
1.5 이 책의 개요

2장. 영속성
2.1 리스트
2.2 이진 검색 트리
2.3 참고사항

3장. 이미 잘 알려져 있는 데이터 구조의 함수형 구현
3.1 레프티스트 힙
3.2 이항 힙
3.3 적흑 트리
3.4 참고사항

4장. 지연 계산
4.1 $ 표기법
4.2 스트림
4.3 참고사항

5장. 분할 상환 기초
5.1 분할 상환 분석 기법들
5.2 큐
5.3 이항 힙
5.4 스플레이 힙
5.5 페어링 힙
5.6 나쁜 소식
5.7 참고사항

6장. 지연 계산을 통해 분할 상환과 영속성을 동시에 달성하기
6.1 실행 트레이스와 논리적 시간
6.2 영속성과 분할 상환 사이를 중재하기
6.2.1 지연 계산의 역할
6.2.2 지연 계산 데이터 구조를 분석하기 위한 프레임워크
6.3 은행원 기법
6.3.1 은행원 기법의 정당성
6.3.2 예제: 큐
6.3.3 부채 상속
6.4 물리학자 기법
6.4.1 예제: 이항 힙
6.4.2 예제: 큐
6.4.3 예제: 공유를 사용하는 상향식 병합 정렬
6.5 지연 계산 페어링 힙
6.6 참고사항

7장. 분할 상환 없애기
7.1 스케줄링
7.2 실시간 질의
7.3 이항 힙
7.4 공유를 사용한 상향식 병합 정렬
7.5 참고사항

8장. 지연 재구축
8.1 일괄 재구축
8.2 전역 재구축
8.2.1 예제: 후드-멜빌 실시간 큐
8.3 지연 재구축
8.4 양방향 큐
8.4.1 출력이 제한된 데크
8.4.2 은행원의 데크
8.4.3 실시간 데크
8.5 참고사항

9장. 수치적 표현
9.1 위치에 기반한 수 체계
9.2 이진수
9.2.1 이진 임의 접근 리스트
9.2.2 영이 없는 표현들.
9.2.3 지연 계산 표현
9.2.4 조각을 사용하는 표현
9.3 치우친 이진수
9.3.1 치우친 이진 임의 접근 리스트
9.3.2 치우친 이항 힙.
9.4 삼진수와 사진수
9.5 참고사항

10장. 데이터 구조적 부트스트래핑
10.1 구조적 분해
10.1.1 비균일 재귀와 SML
10.1.2 이진 임의 접근 리스트 다시 보기
10.1.3 부트스트랩으로 만든 큐
10.2 구조적 추상화
10.2.1 효율적 연결을 지원하는 리스트
10.2.2 효율적인 병합을 지원하는 힙
10.3 조합된 타입 부트스트래핑하기
10.3.1 트라이
10.3.2 일반화한 트라이
10.4 참고사항
11 암시적이며 재귀적인 감속
11.1 큐와 데크
11.2 연결 가능한 데크
11.3 참고사항

부록 A. 하스켈 소스 코드

top