gihyo.jp » 書籍案内 » 定期刊行物一覧 » WEB+DB PRESS » WEB+DB PRESS plusシリーズ » 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために

書籍紹介

関数プログラミング実践入門 ──簡潔で、正しいコードを書くために

[表紙]関数プログラミング実践入門 ──簡潔で、正しいコードを書くために

2014年11月14日発売

大川 徳之 著

A5判/400ページ

定価(本体2,880円+税)

ISBN 978-4-7741-6926-2

ただいま弊社在庫はございません。

  • 本書のサポートページ

→学校・法人一括購入ご検討の皆様へ

この本の概要

長い歴史のある関数プログラミング。

メジャーな命令型言語の最近のバージョンでは,関数プログラミングの要素を取り入れた機能が入ってきました。使っている言語の新機能をうまく活用し,より良い開発につなげるには,今,関数プログラミングを押さえておくことは効果的ではないでしょうか。

しかし,関数プログラミングにおける思考方法は,よく知られた構造化プログラミングやオブジェクト指向プログラミングのそれとは大きく違う面があります。書き方がわかっても,考え方が伴わなければ,プログラムとはそうそう書けるものではありません。

本書では,関数プログラミングのエッセンスを厳選解説。

関数型言語Haskell最新版を用いつつ,現場の方々に向けて,Java 8,C++11,C言語,JavaScript,Rubyをはじめ,各種の命令型言語との比較や,言語固有の新機能の活用術,注意点も豊富に盛り込みました。

加えて,オススメの開発/設計テクニックと題し,トップダウンの思考法や,言語の強みを活かす技法もステップバイステップで紹介します。

広くエンジニアの方々へ,関数型言語でも命令型言語でも活かせる「使える基本」が身に付く1冊をお届けします。

本書の構成

本書『関数プログラミング実践入門──簡潔で,正しいコードを書くために』では,各章は次のような構成となっています。

第0章 [入門]関数プログラミング―「関数」の世界

第0章は導入です。関数プログラミングと,その実現のための関数型言語とはそれぞれ一体どういうものなのかを説明します。合わせて,関数プログラミング界隈の人とコミュニケーションが取れる程度の,基本的な概念や特徴,用語,歴史などを紹介します。いろいろな関数型言語やそれらで書かれたプロダクトの紹介なども含まれます。

第1章 [比較で見えてくる]関数プログラミング―C/C++,JavaScript,Ruby,そしてHaskell

第1章では,同一の問題設定の元で,メジャーな言語のいずれかとHaskellを比較することで,Haskell(あるいは同様の関数型言語の機能)の持つ機能がプログラミングに与える効果を俯瞰します。まだこの時点ではHaskellの文法を説明していませんが,比較対照が存在し,Haskellコードの解説も多めになっているため,エッセンスを読み取るのには支障がないような解説となっています。本当にはじめてHaskellに触れる方は,一度第1章をスキップし,次の第2章から第5章までを読んでから戻ってきても良いでしょう。

第2章 型と値―「型」は,すべての基本である
第3章 関数―関数適用,関数合成,関数定義,再帰関数,高階関数
第4章 評価戦略―遅延評価と積極評価
第5章 モナド―文脈を持つ計算を扱うための仕掛け

第2章から第5章までは,Haskellをはじめ多くの関数型言語の安全性に多大な貢献を果たす「型」,Haskellのコードを読み書きするための基本的な文法や,Haskellと他の言語で実際に計算が進んでいくしくみの違い,特徴的で他の命令型言語で取り入れられ始めた機能であるモナドなどについて詳解します。

第6章 オススメの開発/設計テクニック―「関数型/Haskellっぽい」プログラムの設計/実装,考え方

第6章では,Haskellでのオススメの設計法を,その思考過程がわかるようにステップバイステップ(step by step)で説明していきます。何がHaskellらしいコードであり,どう考えればそのようなコードを書けるのか,その手段の一つを把握できるでしょう。もし,(想定読者ではありませんが)あなたに関数型言語の経験があるのであれば,第5章までをスキップし第6章から読み始めるのは良い選択です。

第7章 Haskellによるプロダクト開発への道―パッケージとの付き合い方

第7章は,実際にHaskellを使ってプロダクトを作るにあたり,どうコードベースやライブラリを管理していけばよいかを扱います。あなたのプログラムをオープンソースとして公開したり,業務でHaskellを使ったりする場合の参考となるでしょう。

Appendix

巻末付録です。関数型言語が使えるプログラミングコンテストサイトと,ステップアップのために読んでおきたい参考文献を紹介しました。

こんな方におすすめ

  • 簡潔なコードを書きたい方
  • 安全でバグらせにくい、正しいコードの設計/実装に関心のある方々
  • JavaやC++などメジャーな命令型言語の新機能と関数型言語の関係に興味をお持ちの方々

著者プロフィール

大川徳之(おおかわのりゆき)

東京大学計数工学科数理情報工学コース,東京大学大学院情報理工学系研究科数理情報学専攻,卒業。キヤノンソフトウェア㈱を経て,現在は㈱朝日ネットにて,HaskellでのWebアプリケーション開発や,開発環境/インフラの構成管理などに携わっている。そろそろどうにかしてAgdaで仕事ができないものか虎視眈々と隙を窺っている。最近ご無沙汰だけどHaskell golfチョットデキル。

コメント