TOP新刊既刊I/OサポートQ&A通販お問い合わせ
 既刊 > 2011年 > 9月 書名検索: 詳細検索...
問題を適切な大きさに分解するスケーラブルな手法
ファンクション+アクション=プログラム
【関数型プログラミングのススメ】
金谷 一朗 著
2011年 9月17日発売   A5判  216ページ 定価 \2,090(本体 \1,900)
   ISBN978-4-7775-1630-8 C3004 \1900E
 こんにち、プログラマーが解くべき問題は、指数関数的に大きくなってきている。一方、人間の脳は、その速度では進化しない。
 つまり、問題をスケーラブルに分解する方法(中ぐらいの問題を小さな問題に分解するのと同じ手法で、大きな問題を中ぐらいの問題に分解できる方法)が必要になってくる。

 本書では、「関数型プログラミング」の解説を行なう。数学者たちが長年培ってきた方法が、「関数型プログラミング」なのである。「関数型プログラミング」は特定のプログラミング言語に基づく思考法ではないから、本書でもさまざまな言語を用いる。中には親しみ深い言語もあるだろうし、初めて見る言語もあるかもしれない。しかし、その背後にある数学は、一貫している。本書を通して「関数型プログラミング」という精神に触れてもらいたい。
■ 主な内容 ■
CONTENTS

 はじめに

 第1章  本書について
 [1.1] 本書で述べること  [1.2] 本書で述べないこと
 [1.3] 本書の構成

 第2章  「関数型プログラミング」ひとめぐり【C・Scheme・Haskell】
 [2.1] 「関数型プログラミング」への道  [2.2] 単純な例
 [2.3] なぜ「関数型プログラミング」がいいのか?(参照透過性)  [2.4] 「関数型プログラミング」を強くサポートする言語
 [2.5] 型システム

 第3章  「ラムダ記法」と計算の本質【JavaScript・Python・Ruby】
 [3.1] ラムダ記法  [3.2] 「プログラミング」における「ラムダ式」
 [3.3] 計算の本質(チャーチ数)  [3.4] カリー化
 [3.5] クロージャ

 第4章  リスト【AWK・Make・シェルスクリプト】
 [4.1] リストとタプル  [4.2] リストを使った問題
 [4.3] リストを使った問題の実装  [4.4] 実装の汎用化
 [4.5] リストの中身

 第5章  「条件分岐」と「ループ」【Haskell・Python・Scheme】
 [5.1] 条件分岐  [5.2] ループ
 [5.3] イテレータ  [5.4] フィルタ
 [5.5] マップと畳み込み

 第6章  高度なリスト【Scheme】
 [6.1] ツリー構造  [6.2] ツリーを使った問題
 [6.3] 「ツリー」を使った問題の実装  [6.4] リスト内包表記
 [6.5] 再び「畳み込み」と「マップ」

 第7章  パーサ【Haskell】
 [7.1] Haskell言語  [7.2] 「純粋関数型」である意味
 [7.3] パーサ(1)  [7.4] パーサ(2)
 [7.5] パーサ(3)

 第8章  I/O【Haskell】
 [8.1] I/Oと関数型プログラミング  [8.2] アクション
 [8.3] モナド  [8.4] 三たび単語を数える
 [8.5] 「文脈」としての「モナド」

 第9章  関数型プログラミングを使わない方がよい場合
 [9.1] イベント駆動【Objective-C】  [9.2] 継続【Scheme】
 [9.3] マクロ【Common LISP】  [9.4] 例外【Java】
 [9.5] 「自己書き換え」と「リフレクション」【C・JavaScript】

 第10章  Yコンビネータ
 [10.1] 関数名を使わない再帰  [10.2] Zコンビネータ
 [10.3] Yコンビネータ

 第11章  その他の話題
 [11.1] チューリング機械(BrainfuckとUnlambda)  [11.2] 「C言語」と「ラムダ式」
 [11.3] 「C++」の「関数オブジェクト」  [11.4] コールバック?ご冗談を。
 [11.5] プログラミングの最後の砦


 おわりに
 参考文献
 索引


※ 内容が一部異なる場合があります。発売日は、東京の発売日であり、地域によっては1〜2日程度遅れることがあります。あらかじめご了承ください。

本書内容に関するご質問は、こちら
通信販売
在庫あり
サポート情報
ご意見・ご質問

内容見本