ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    スポンサーサイト

    このエントリーを含むはてなブックマーク はてなブックマーク - スポンサーサイト あとで読む
    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

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

    このエントリーを含むはてなブックマーク はてなブックマーク - すごいHaskellたのしく学ぼう! あとで読む
    関数型プログラミングを学ぶ教材として、Haskellを取り上げてみたい。

    Haskellの学習コストは、どれぐらいだろうか?

    1週間程度で使えるようになれば良いけど、時間がかかるなら面倒くさいかな?

    すごいHaskellたのしく学ぼう!
    Miran Lipovača
    オーム社
    2012-05-23
    ¥ 3,024


    この本で勉強してみます。

    ・この本の元ネタになったサイト
    Learn You a Haskell for Great Good! (英語)

    ●目次

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

    主要目次

    イントロダクション
    第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:訳語一覧

    索引



    400ページもあるよ!

    結構、ボリュームあるなー。。。

    Haskellって、1週間じゃマスターできないんじゃねーの?

    1章を1日で読んだとしたら、15章=15日で、2週間とかだな?
    1章に2日かけたら、それでも1か月かー。(挫折する予感w)


    橋本崇載八段

    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/1211-86dde6f8

    FC2Ad

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。