試験公開中

このエントリーをはてなブックマークに追加

Haskellによる関数プログラミングの思考法

アスキードワンゴ

2,240円+税

関数プログラミングの考え方・思考法を学ぶ!関数プログラミングが最高の技法である理由は、関数プログラムを数学的に考察できる点にある。本書を読むことで、関数プログラミングの本質を身に着け、Haskellの真の能力を理解できるだろう。

関連サイト

本書の関連ページが用意されています。

内容紹介

◆関数プログラミングの思考法を伝える教科書!

本書では、「関数と関数適用を使ってプログラムを構成する」「数学で用いる単純な記法で問題を簡潔明快に記述する」「単純な数学を基盤とし等式論証を用いてプログラムの性質に関して証明やプログラム運算する(意味を変えることなくプログラムを変換する)」ことで、意図どおり正しく合理的な時間で動作するプログラムを手早く書くというプログラマ共通の課題に挑むことで、関数プログラミングの基本的な考え方を学んでいく。

書誌情報

  • 著者: Richard Bird(著), 山下伸夫(訳)
  • 発行日: (紙書籍版発行日: 2017-02-28)
  • 最終更新日: 2017-02-28
  • バージョン: 1.0.0
  • ページ数: 336ページ(PDF版換算)
  • 対応フォーマット: PDF
  • 出版社: アスキードワンゴ

対象読者

著者について

Richard Bird

オックスフォード大学名誉教授,同大学リンカーンカレッジフェロー.
関心分野: プログラミングの代数,仕様からのアルゴリズム運算,関数プログラミング,アルゴリズムデザイン.

山下伸夫

聖徳大学准教授,株式会社タイムインターメディア顧問.
関心分野: 関数プログラミング言語設計,Haskell による関数プログラミング,Haskell を通じてプログラミングの楽しさをどう伝えるか.

目次

訳者序文

まえがき

第1章 関数プログラミングとは何か

  • 1.1 関数と型
  • 1.2 関数合成
  • 1.3 例題:頻出単語
  • 1.4 例題:数を言葉に変換する
  • 1.5 Haskell Platform
  • 1.6 練習問題
  • 1.7 練習問題の解答
  • 1.8 章末ノート

第2章 式,型,値

  • 2.1 GHCi を使ったセッション
  • 2.2 名前と演算子
  • 2.3 評価
  • 2.4 型と型クラス
  • 2.5 値の表示
  • 2.6 モジュール
  • 2.7 Haskellのレイアウト
  • 2.8 練習問題
  • 2.9 練習問題の解答
  • 2.10 章末ノート

第3章 数値

  • 3.1 型クラスNum
  • 3.2 その他の数値型クラス
  • 3.3 床値の計算
  • 3.4 自然数
  • 3.5 練習問題
  • 3.6 練習問題の解答
  • 3.7 章末ノート

第4章 リスト

  • 4.1 リスト記法
  • 4.2 列挙
  • 4.3 リスト内包表記
  • 4.4 基本演算
  • 4.5 連接
  • 4.6 concat,map,filter
  • 4.7 zip とzipWith
  • 4.8 頻出単語(完成編)
  • 4.9 練習問題
  • 4.10 練習問題の解答
  • 4.11 章末ノート

第5章 単純な数独ソルバー

  • 5.1 仕様
  • 5.2 法則を使ったプログラムの構成
  • 5.3 選択肢行列の枝刈り
  • 5.4 単一マス目拡張
  • 5.5 練習問題
  • 5.6 練習問題の解答
  • 5.7 章末ノート

第6章 証明

  • 6.1 自然数上の帰納法
  • 6.2 リスト上の帰納法
  • 6.3 foldr 関数
  • 6.4 foldl 関数
  • 6.5 scanl 関数
  • 6.6 最大切片和
  • 6.7 練習問題
  • 6.8 練習問題の解答
  • 6.9 章末ノート

第7章 効率

  • 7.1 遅延評価
  • 7.2 空間計算量の制御
  • 7.3 時間計算量の制御
  • 7.4 時間計算量の分析
  • 7.5 蓄積引数
  • 7.6 タプリング法
  • 7.7 ソート
  • 7.8 練習問題
  • 7.9 練習問題の解答
  • 7.10 章末ノート

第8章 プリティプリント

  • 8.1 利用状況の想定
  • 8.2 ドキュメント
  • 8.3 直接実装
  • 8.4 例
  • 8.5 最良のレイアウト
  • 8.6 項表現
  • 8.7 練習問題
  • 8.8 練習問題の解答
  • 8.9 章末ノート

第9章 無限リスト

  • 9.1 復習
  • 9.2 循環リスト
  • 9.3 極限としての無限リスト
  • 9.4 じゃんけん
  • 9.5 ストリームを基本とする対話
  • 9.6 2 重連結リスト
  • 9.7 練習問題
  • 9.8 練習問題の解答
  • 9.9 章末ノート

第10章 命令的関数プログラミング

  • 10.1 IO モナド
  • 10.2 その他のモナド
  • 10.3 State モナド
  • 10.4 ST モナド
  • 10.5 可変配列
  • 10.6 不可変配列
  • 10.7 練習問題
  • 10.8 練習問題の解答
  • 10.9 章末ノート

第11章 構文解析

  • 11.1 モナドとしての構文解析器
  • 11.2 基本構文解析器
  • 11.3 選択と反復
  • 11.4 文法と式
  • 11.5 式の表示
  • 11.6 練習問題
  • 11.7 練習問題の解答
  • 11.8 章末ノート

第12章 単純等式運算器

  • 12.1 基本となる検討
  • 12.2 式
  • 12.3 法則
  • 12.4 運算
  • 12.5 書き換え
  • 12.6 照合
  • 12.7 置換
  • 12.8 運算器のテスト
  • 12.9 練習問題
  • 12.10 練習問題の解答
  • 12.11 章末ノート

索引

著者・訳者紹介

Home 書籍一覧 Haskellによる関数プログラミングの思考法 ▲ ページトップへ戻る