HOME > Detail View

Detail View

하스켈로 배우는 함수형 프로그래밍 : 간결하고 올바른 코드 작성법을 배운다 (Loan 15 times)

Material type
단행본
Personal Author
大川德之 정인식, 역
Title Statement
하스켈로 배우는 함수형 프로그래밍 : 간결하고 올바른 코드 작성법을 배운다 / 오카와 노리유키 지음 ; 정인식 옮김
Publication, Distribution, etc
파주 :   제이펍,   2015  
Physical Medium
xxv, 484 p. : 삽화 ; 23 cm
Varied Title
関数プログラミング実践入門 : 簡潔で, 正しいコ-ドを書くために
ISBN
9791185890296
General Note
부록: A.1. 함수형 언어를 사용하는 프로그래밍 콘테스트 사이트 : 게임 감각으로 도전, A.2. 읽어 둘 만한 참고문헌 : 더 깊은 세계로…  
색인수록  
000 00000cam c2200205 c 4500
001 000045846869
005 20151019093855
007 ta
008 151016s2015 ggka 001c kor
020 ▼a 9791185890296 ▼g 93000
035 ▼a (KERIS)BIB000013857426
040 ▼a 211019 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h jpn
082 0 4 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b H349 2015
100 1 ▼a 大川德之
245 1 0 ▼a 하스켈로 배우는 함수형 프로그래밍 : ▼b 간결하고 올바른 코드 작성법을 배운다 / ▼d 오카와 노리유키 지음 ; ▼e 정인식 옮김
246 1 9 ▼a 関数プログラミング実践入門 : ▼b 簡潔で, 正しいコ-ドを書くために
246 3 ▼a Kansu puroguramingu jissen nyumon : ▼b kanketsu de tadashi kodo o kaku tame ni
260 ▼a 파주 : ▼b 제이펍, ▼c 2015
300 ▼a xxv, 484 p. : ▼b 삽화 ; ▼c 23 cm
500 ▼a 부록: A.1. 함수형 언어를 사용하는 프로그래밍 콘테스트 사이트 : 게임 감각으로 도전, A.2. 읽어 둘 만한 참고문헌 : 더 깊은 세계로…
500 ▼a 색인수록
700 1 ▼a 정인식, ▼e
900 1 0 ▼a 오카와 노리유키, ▼e
900 1 0 ▼a Okawa, Noriyuki, ▼e
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.133 H349 2015 Accession No. 121234428 Availability In loan Due Date 2022-07-13 Make a Reservation Available for Reserve R Service M

Contents information

Book Introduction

함수형 언어인 하스켈(Haskell)의 최신 버전을 사용하면서 현업의 실무자들을 위해 자바 8, C++ 11, C, 자바스크립트, 루비 등의 각종 명령형 언어와의 차이를 설명하고, 언어마다 새로운 기능의 활용 방법과 주의점 등을 풍부하게 포함하였다. 또한, 하향식 사고법과 언어의 장점을 활용하는 기법도 단계적으로 소개한다.

이 책은 함수형 언어인 하스켈(Haskell)의 최신 버전을 사용하면서 현업의 실무자들을 위해 자바 8, C++ 11, C, 자바스크립트, 루비 등의 각종 명령형 언어와의 차이를 설명하고, 언어마다 새로운 기능의 활용 방법과 주의점 등을 풍부하게 포함하였다. 또한, 하향식 사고법과 언어의 장점을 활용하는 기법도 단계적으로 소개한다. 부디 엔지니어 여러분에게 함수형 언어로 명령형 언어를 활용할 수 있는 실용적인 책이 되기를 바란다.

함수형 프로그래밍의 에센스를 엄선하여 해설한다!
간결하고 올바른 코드 작성법을 배운다!
함수형 언어의 설계 방법과 사고방식, 그리고 다른 언어와의 비교 및 대조!


주요 명령형 언어의 최근 버전들은 함수형 프로그래밍의 핵심 요소들을 채택하고 있다. 사용 중인 언어의 새로운 기능을 제대로 활용하기 위해서 함수형 프로그래밍에 대한 학습이 선택이 아닌 필수가 되어 가고 있다. 그러나 함수형 프로그래밍의 사고방식은 잘 알려진 구조적 프로그래밍이나 객체지향 프로그래밍과는 크게 다른 면이 있어서 작성 방법을 알더라도 생각이 뒤따르지 않으면 그리 간단히 작성할 수 없는 것이 사실이다.

이 책은 함수형 언어인 하스켈(Haskell)의 최신 버전을 사용하면서 현업의 실무자들을 위해 자
바 8, C++ 11, C, 자바스크립트, 루비 등의 각종 명령형 언어와의 차이를 설명하고, 언어마다
새로운 기능의 활용 방법과 주의점 등을 풍부하게 포함하였다. 또한, 하향식 사고법과 언어의
장점을 활용하는 기법도 단계적으로 소개한다. 부디 엔지니어 여러분에게 함수형 언어로 명령
형 언어를 활용할 수 있는 실용적인 책이 되기를 바란다.

이 책의 대상 독자
■ 간결한 코드를 작성하고 싶은 분
■ 안전하고 버그 없는 올바른 코드를 설계하고 구현하고자 하는 분
■ 자바나 C++ 등 주요 명령형 언어의 새로운 기능과 함수형 언어와의 관계에 관심 있는 분


Information Provided By: : Aladin

Author Introduction

오카와 노리유키(지은이)

도쿄대학교에서 수리정보공학을, 도쿄대학교 대학원에서 수리정보학을 전공하였다. 캐논소프트웨어(주)를 거쳐 현재는 (주)아사히 인터넷에서 HASKELL을 이용한 웹 애플리케이션 개발과 개발 환경 및 인프라 구성 관리 업무를 담당하고 있다. 최근에는 함수형 프로그래밍을 통한 수학적 정리 증명 프로그램인 AGDA 관련 일을 하고 싶어 이에 관한 정보 수집에 집중하고 있다.

정인식(옮긴이)

숭실대학교에서 전자계산학을 전공하고 현대정보기술 eBiz 기술팀에서 웹 애플리케이션 개발 및 B2B 마켓플레이스 설루션을 연구했다. 그 후 이동통신 단말기 분야로 옮겨 휴대폰 부가서비스 개발 업무를 담당했으며, 일본에서 키스코 모바일사업부 팀장으로 교세라의 북미향 휴대폰 개발에 참여했다. 퇴직 후 현재는 일본 주식회사 WiseJIn의 대표이사 겸 엔지니어로, 일본의 주요 통신사와 공공 서비스 분야에서 업무 프로세스 개선을 위한 IT 컨설팅을 펼치며 데이터 분석 관련 툴과 웹 서비스 개발을 하고 있다. 《임베디드 엔지니어 교과서》(제이펍, 2020), 《배워서 바로 쓰는 스프링 부트 2》(한빛미디어, 2020), 《알파고를 분석하며 배우는 인공지능》(제이펍, 2019) 등 20권 이상의 책을 번역했다.

Information Provided By: : Aladin

Table of Contents

Chapter 0 [입문] 함수형 프로그래밍 ? “함수”의 세계 _ 2 
0.1 함수형 프로그래밍, 그 전에 ― 실용 프로그램에서 활용하는 강점 알기 4 
0.2 함수란 무엇인가? ― 명령형 언어의 함수와 무엇이 다른가? 5 
0.3 함수형 프로그래밍이란 무엇인가? ― “프로그램이란 함수다”라는 관점 9 
0.4 함수형 언어란? ― 함수가 1급(first class) 대상이다? 대입이 없다? 12 
0.5 함수형 언어의 특징적인 기능 ― 타입의 유무, 정적/동적, 강약 20 
0.6 왜 지금 함수형 언어인가? ― 추상화, 최적화, 병행/병렬화 28 
0.7 함수형 언어와 함수형 프로그래밍의 관계 ― 강력한 성과를 끌어내기 위해서는 어떻게 하면 좋은가? 41 
0.8 함수형 언어의 역사 ― 과거를 알고 미래 탐구하기 43 
0.9 함수형 언어를 채용하는 장점 ― 선언적일 것, 제약의 충족 체크, 타입과 타입 검사, 타입 추론 49 
0.10 이 책에서 다루는 함수형 언어 ― Haskell의 특징, 구현, 환경 구축 54 
0.11 정리 60 

Chapter 1 [비교를 통해 발견하기] 함수형 프로그래밍 ― C/C++, JavaScript, Ruby 그리고 Haskell _ 64 
1.1 좌표 변환 ― 부품 조합하기 66 
1.2 NULL considered harmful ― 10억 달러 단위의 실수 79 
1.3 소수를 세기 ― 올바른 병렬화와 그 사양 변경 대응 90 
1.4 구조화 데이터의 취급 ― Visitor 패턴 100 
1.5 문자열의 이스케이프 ― 타입에 성질 갖게 하기 108 
1.6 정리 118 

Chapter 2 타입과 값 ? “타입”은 기본 중의 기본 _ 120 
2.1 Prelude ― 기본 모듈 122 
2.2 값 ― 조작의 대상 123 
2.3 변수 ― 값의 추상화 129 
2.4 타입 ― 값의 성질 132 
2.5 타입 정의하기 ― 취급하는 성질의 결정 151 
2.6 타입 클래스 ― 타입에 공통된 성질 165 
2.7 정리 178 

Chapter 3 함수 ? 함수 적용, 함수 합성, 함수 정의, 재귀 함수, 고차 함수 _ 180 
3.1 함수 만들기 ― 기존의 함수로부터 만들기, 직접 새로운 함수 정의하기 182 
3.2 함수 적용 ― 기존 함수의 인수에 값 부여하기 182 
3.3 함수 합성 ― 기존의 함수 연결하기 188 
3.4 Haskell의 소스 파일 ― 소스 파일에 함수를 정의하여 GHCi에서 읽어 보기 191 
3.5 함수 정의 ― 패턴 매치와 가드 194 
3.6 재귀 함수 ― 반복적인 행동을 정의하는 함수 213 
3.7 고차 함수 ― 결과가 함수가 되는 함수, 인수로서 함수를 요구하는 함수 222 
3.8 정리 234 

Chapter 4 평가 전략 ? 지연 평가와 적극 평가 _ 236 
4.1 지연 평가를 살펴보자 ― 유효하게 이용할 수 있는 예로부터 확실히 배우기 238 
4.2 평가 전략 ― 지연 평가와 적극 평가의 구조, 장점 및 단점 256 
4.3 평가 제어하기 ― 성능 튜닝을 위해서 269 
4.4 정리 275 

Chapter 5 모나드 ? 문맥을 지닌 계산을 다루기 위한 장치 _ 278 
5.1 타입 클래스를 다시 한 번 살펴보기 ― 직접 만든다는 관점으로 280 
5.2 모나드의 사용법 ― 문맥을 잘 취급하기 위한 타입 클래스 인터페이스 288 
5.3 여러 가지 모나드 ― Identity, Maybe, 리스트, Reader, Writer, State, IO … 304 
5.4 다른 언어에 있어서의 모나드 ― 모나드나 이와 유사한 기능의 서포트 상황 332 
5.5 Haskell 프로그램의 컴파일 ― 컴파일해서 Hello, World! 337 
5.6 정리 338 

Chapter 6 추천하는 개발/설계 테크닉 ― “함수형/Haskell식”의 프로그램 설계/구현, 사고 _ 342 
6.1 동작 결정하기 ― 테스트를 작성하자 344 
6.2 하향식으로 생각하기 ― 문제를 큰 틀에서 파악하고 작은 문제로 분할해 나가기 349 
6.3 제약 설계하기 ― 타입에 제약 갖게 하기 384 
6.4 적절한 처리를 선택하게 하기 ― 타입과 타입 클래스를 적절하게 이용하여 타입에 제약 기억시키기 394 
6.5 보다 복잡한 제어 부여하기 ― 매우 강력한 로직 퍼즐의 예 404 
6.6 정리 415 

Chapter 7 Haskell에 의한 제품 개발의 길 ? 패키지와의 교제 _ 418 
7.1 패키지의 이용 ― 패키지 시스템 Cabal 420 
7.2 패키지의 작성 ― 우선은 패키징해 두자 425 
7.3 조직 내 개발 패키지의 취급 ― 이런저런 궁리 436 
7.4 이용할 패키지의 선정 ― 의존 관계 지옥, 선정의 지침 440 
7.5 의존 패키지의 버전 컨트롤 ― 패키지별로 어떤 버전을 선택할 것인가? 448 
7.6 버전 간의 차이 흡수 ― 버전 간 변경점을 검출하는 것부터 453 
7.7 정리 459 

APPENDIX 부록 _ 461 
A.1 함수형 언어를 사용하는 프로그래밍 콘테스트 사이트 ― 게임 감각으로 도전 462 
A.2 읽어 둘 만한 참고문헌 ― 더 깊은 세계로… 469 

찾아보기 .... 474

New Arrivals Books in Related Fields

Anson, Steve (2022)
한국. 행정안전부 (2022)
한국. 행정안전부 (2022)
황기태 (2021)
Zumstein, Felix (2022)