プログラミング文体練習

―Pythonで学ぶ40のプログラミングスタイル

[cover photo]
TOPICS
Programming , Python
発行年月日
PRINT LENGTH
316
ISBN
978-4-8144-0022-5
原書
Exercises in Programming Style, 2nd Edition
FORMAT
Print PDF EPUB
Ebook
3,300円
Ebookを購入する
Print
3,300円

レーモン・クノーの『文体練習』から着想を得て執筆された本書は、1つの課題を異なるプログラミングスタイルで実装し、さまざまなスタイルの特性やスタイルが生まれた歴史的経緯などを解説します。本家の『文体練習』は、「バスの中で起きた諍いと、その張本人を後で目撃した」という内容を、公的文書風、宣伝風、業界用語風など、99の異なる文体で表現したものですが、本書は、「単語の出現頻度をカウントして多いものから出力する」という課題を、40のスタイルで実装しています。リソース制約が大きかった時代の方法から、オブジェクト指向、純粋関数型、リフレクション、並行処理、ニューラルネットワークまで幅広いスタイルを扱い、マルチパラダイム言語Pythonの威力と魅力を感じられる構成となっています。

目次

訳者まえがき
第2版 まえがき
第1版 まえがき

序章

第Ⅰ部 歴史的スタイル
 1章 古き良き時代:アセンブリ言語
 2章 Forthで行こう:スタックマシン
 3章 配列プログラミング:ベクトル演算

第Ⅱ部 基本スタイル
 4章 一枚岩:モノリス
 5章 クックブック:構造化プログラミング
 6章 パイプライン:関数型プログラミング
 7章 コードゴルフ:ワンライナー

第Ⅲ部 関数合成
 8章 合わせ鏡:再帰
 9章 継続:継続渡し
 10章 単子:モナド

第Ⅳ部 オブジェクトとオブジェクトの相互作用
 11章 モノのプログラム:オブジェクト
 12章 レターボックス:メッセージパッシング
 13章 閉写像:プロトタイプ
 14章 抽象的なモノ:抽象データ型
 15章 ハリウッド:制御の反転
 16章 掲示板:pub/sub

第Ⅴ部 リフレクションとメタプログラミング
 17章 内省性:イントロスペクション
 18章 自己反映性:リフレクション
 19章 横断的関心:アスペクト指向
 20章 プラグイン:依存性注入

第Ⅵ部 異常事態
 21章 構成主義:防御的プログラミング
 22章 癇癪持ち:契約による設計
 23章 受動的攻撃:例外
 24章 意図の宣言:型注釈
 25章 検疫:純粋関数と不純関数

第Ⅶ部 データ中心
 26章 データベース:SQL
 27章 スプレッドシート:リアクティブプログラミング
 28章 データストリーム:ジェネレータ

第Ⅷ部 並行性
 29章 アクター:スレッド
 30章 データ空間:並列処理
 31章 マップリデュース:MapReduce
 32章 二重マップリデュース:Hadoop

第Ⅸ部 対話性
 33章 三位一体:MVC
 34章 レストフル:ステートレス

第Ⅹ部 ニューラルネットワーク
 35章 浅いDense層のプログラム:ニューラルネットワーク
 36章 学習する浅いDense層:学習
 37章 蝶ネクタイ:多層ネットワーク
 38章 ニューロモノリス:シーケンス
 39章 スライディングウィンドウ:畳み込み
 40章 リカレント:回帰型ニューラルネットワーク

索引