Home
 

Home > コンピュータ・一般書 > プログラミング・開発 > その他 > すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

・著者:Miran Lipovaca 著/田中英行・村主崇行 共訳978-4-274-06885-0
・定価:3,024 円(本体2,800 円+税)
・A5 416頁

・ISBN

・発売日


かごに入れる

※本体価格は変更される場合があります。
※通常2〜3日以内で発送いたします。

合計5000円(税別)以上のご注文の場合、配送料は無料となります。

Haskellの達人たちが推薦する楽しい入門書

 

丁寧な解説とポップな例題で本物のHaskellプログラミングを習得できる入門書。

原書の"Learn You a Haskell for Great Good!"は、型、遅延評価、モナドといった難しい概念にも自然に慣れていけるよう工夫された構成、他の言語経験者への配慮に加え、原著者による楽しいイラストによって、もっとも分かりやすいHaskell本として、高く評価されています。

2012/05
★このような方におすすめ
プログラマー Haskell入門者 Haskellを実用的に学びたい人 関数型言語に興味のある人
主要目次
イントロダクション
第1章: はじめの第一歩
第2章: 型を信じろ!
第3章: 関数の構文
第4章: Hello 再帰!
第5章: 高階関数
第6章: モジュール
第7章: 型やクラスを自分で作ろう
第8章: 入出力
第9章: もっと入力、もっと出力
第10章: 関数型問題解決法
第11章: ファクターからアプリカティブファンクターへ
第12章: モノイド
第13章: モナドがいっぱい
第14章: もうちょっとだけモナド
第15章: Zipper
付録A:マルチバイト文字列処理に関する訳者補足
付録B:訳語一覧
ページトップへ戻る
詳細目次
訳者序文
イントロダクション
	で、Haskellって何なの?
	Haskellの世界に飛び込むのに必要なもの
	謝辞

第1章 はじめの第一歩
	1.1 関数呼び出し
	1.2 赤ちゃんの最初の関数
	1.3 リスト入門
		連結
		リストの要素へのアクセス
		リスト中のリスト
		リストの比較
		さらなるリスト操作
	1.4 レンジでチン!
	1.5 リスト内包表記
	1.6 タプル
		タプルを使う
		ペアを使う
		直角三角形を見つける

第2章 型を信じろ!
	2.1 明示的な型宣言
	2.2 一般的なHaskellの型
	2.3 型変数
	2.4 型クラス 初級講座
		Eq 型クラス
		Ord 型クラス
		Show 型クラス
		Read 型クラス
		Enum 型クラス
		Bounded 型クラス
		Num 型クラス
		Floating 型クラス
		Integral 型クラス
		最後に ―― 型クラスに関するいくつかの注意

第3章 関数の構文
	3.1 パターンマッチ
		タプルのパターンマッチ
		リストのパターンマッチとリスト内包表記
		as パターン
	3.2 場合分けして、きっちりガード!
	3.3 where?!
		where のスコープ
		パターンマッチと where
		where ブロックの中の関数
	3.4 let It Be
		リスト内包表記での let
		GHCi でのlet
	3.5 case 式

第4章 Hello 再帰!
	4.1 最高に最高!
	4.2 さらにいくつかの再帰関数
		replicate
		take
		reverse
		repeat
		zip
		elem
	4.3 クイック、ソート!
		アルゴリズム
		コード
	4.4 再帰的に考える

第5章 高階関数
	5.1 カリー化関数
		セクション(という名のセクション)
		関数を表示する
	5.2 高階実演
		zipWithを実装する
		flipを実装する
	5.3 関数プログラマの道具箱
		map 関数
		filter 関数
		mapとfilterのさらなる例
		map関数に複数の引数を与える
	5.4 ラムダ式
	5.5 畳み込み、見込みアリ!
		foldlで左畳み込み
		foldrで右畳み込み
		foldl1とfoldr1関数
		いくつかの畳み込みの例
		別の視点から見た畳み込み
		無限リストを畳み込む
		スキャン
	5.6 \$ を使った関数適用
	5.7 関数合成
		多引数関数の関数合成
		ポイントフリースタイル

第6章 モジュール
	6.1 モジュールをインポートする
	6.2 標準モジュールの関数で問題を解く
		単語を数える
		干し草の山から針を探す
		シーザー暗号サラダ
		正格な左畳み込みにて
		かっこいい数を見つけよう
	6.3 キーから値へのマッピング
		だいたい大丈夫(連想リスト)
		Data.Map に潜入せよ
	6.4 モジュールを作ってみよう
		幾何学モジュール
		階層的モジュール

第7章 型や型クラスを自分で作ろう
	7.1 新しいデータ型を定義する
	7.2 形づくる
		Pointデータ型で形を整える
		Shapeをモジュールとしてエクスポートする
	7.3 レコード構文
	7.4 型引数
		自動車は型引数を取るべきか?
		三次元ベクトル
	7.5 インスタンスの自動導出
		人間の平等
		読み方を書いてみせてよ
		順番を守ってください!
		何曜日でもいいよ
	7.6 型シノニム
		電話帳をかっこよくしよう
		型シノニムの多相化
		そこを左に行って、すぐ右へ
	7.7 再帰的なデータ構造
		リストの改善
		木を植えよう
	7.8 型クラス 中級講座
		Eq型クラスの内部
		交通信号データ型
		サブクラス化
		多相型を型クラスのインスタンスに
	7.9 YesとNoの型クラス
	7.10 Functor型クラス
		MaybeはFunctorだよ、たぶん
		TreeもFunctorの森に
		EitherはFunctorであるか否か
	7.11 型を司るもの、種類

第8章 入出力
	8.1 不純なものと純粋なものを分離する
	8.2 Hello, World!
	8.3 I/O アクションどうしをまとめる
		I/Oアクションの中で let を使う
		逆順に表示する
	8.4 いくつかの便利なI/O関数
		putStr
		putChar
		print
		when
		sequence
		mapM
		forever
		forM
	8.5 I/O アクションおさらい

第9章 もっと入力、もっと出力
	9.1 ファイルとストリーム
		入力のリダイレクト
		入力ストリームから文字列を得る
		入力を変換する
	9.2 ファイルの読み書き
		withFile 関数を使う
		ブラケットの時間
		ハンドルを握れ!
	9.3 ToDoリスト
		アイテムの削除
		クリーンアップ
	9.4 コマンドライン引数
	9.5 ToDoリストをもっと楽しむ
		マルチタスクタスクリスト
		不正な入力に対応する
	9.6 ランダム性
		コイントス
		ランダムな関数をもっと
		ランダム性とI/O
	9.7 bytestring
		正格bytestringと遅延bytestring
		bytestringを使ったファイルのコピー

第10章 関数型問題解決法
	10.1 逆ポーランド記法電卓
		RPN記法の式を計算
		RPN関数を書く
		演算子を追加しよう
	10.2 ヒースロー空港からロンドンへ
		最速経路を計算する
		道路網をHaskellで表現する
		最短経路関数を求めよ!
		入力から道路網を受け取る

第11章 ファンクターからアプリカティブファンクターへ
	11.1 帰ってきたファンクター
		ファンクターとしてのI/Oアクション
		ファンクターとしての関数
	11.2 ファンクター則
		第一法則
		第二法則
		法則を破る
	11.3 アプリカティブファンクターを使おう
		Applicativeちゃんと仲良くしてあげてね!
		Maybeはアプリカティブファンクター
		アプリカティブ・スタイル
		リスト
		IOもアプリカティブファンクターだよ!
		関数もアプリカティブだよ
		Zipリスト
		アプリカティブ則
	11.4 アプリカティブの便利な関数

第12章 モノイド
	12.1 既存の型を新しい型にくるむ
		newtypeを使って型クラスのインスタンスを作る
		newtypeと遅延評価
		type vs. newtype vs. data
	12.2 Monoid大集合
		Monoid型クラス
		モノイド則
	12.3 モノイドとの遭遇
		リストはモノイド
		ProductとSum
		AnyとAll
		Orderingモノイド
		Maybeモノイド
	12.4 モノイドで畳み込む

第13章 モナドがいっぱい
	13.1 アプリカティブファンクターを強化する
	13.2 Maybeから始めるモナド
	13.3 Monad型クラス
	13.4 綱渡り
		ひたすらコーディング
		うゎぁあああああ落ちるぅぅうううああああ
		ロープの上のバナナ
	13.5 do記法
		do自由自在
		帰ってきたピエール
		パターンマッチと失敗
	13.6 リストモナド
		do記法とリスト内包表記
		MonadPlusとguard関数
		騎士の旅
	13.7 モナド則
		左恒等性
		右恒等性
		結合法則

第14章 もうちょっとだけモナド
	14.1 Writer?中の人なんていません!
		モノイドが助けにきたよ
		Writer型
		Writerをdo記法で使う
		プログラムにログを追加しよう!
		非効率なリスト構築
		差分リストを使う
		性能の比較
	14.2 Reader?それはあなたです!
		モナドとしての関数
		Readerモナド
	14.3 計算の状態の正体
		状態付きの計算
		スタックと石
		Stateモナド
		状態の取得と設定
		乱数とStateモナド
	14.4 Errorを壁に
	14.5 便利なモナディック関数特集
		liftMと愉快な仲間たち
		join関数
		filterM
		foldM
	14.6 安全な逆ポーランド記法電卓を作ろう
	14.7 モナディック関数の合成
	14.8 モナドを作る

第15章 Zipper
	15.1 歩こう
		背後に残った道しるべ
		来た道を戻る
		注目している木を操る
		真っすぐ、てっぺんまで行って、新鮮でおいしい空気を吸おう!
	15.2 リストに注目する
	15.3 超シンプルなファイルシステム
		このファイルシステムのジッパーを作ろうぜ!
		ファイルシステムの操作
	15.4 足下にご注意
	15.5 読んでくれてありがとう!

付録A:マルチバイト文字列処理に関する訳者補足
	A.1 文字コードとtext
	A.2 OverloadedStrings拡張
	A.3 ViewPatterns拡張

付録B:訳語一覧

索引
ページトップへ戻る