入門Haskellプログラミング(Will Kurt 株式会社クイープ 株式会社クイープ)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 入門Haskellプログラミング

入門Haskellプログラミング


翻訳
監修

形式:
書籍
発売日:
ISBN:
9784798158662
定価:
4,180(本体3,800円+税10%)
仕様:
B5変・624ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
紙の書籍

「コンピュータのプログラミング」から脱却し、
“学術”ではない、実用度重視のHaskell入門書

Haskellは、関数型プログラミングを研究する対象としての側面が強すぎ、一般的なアプリケーション構築を目的とした開発言語の側面が、おざなりにされがちでした。そのため、他の言語(JavaとかC/C++とかC#とか)がこなす、ありふれたアプリケーションをHaskellで構築しようとすると、キーボードを叩く指が止まってしまうことがありました。本書は関数型プログラミングの基本を押さえつつ、実用的なプログラムを書けるようなレベルに誘う一冊です。

もちろん、そのためにはプログラミング言語としての基礎的な知識や、Haskellならではの技法・手法の理解が欠かせません。本書では、最終的にI/Oを使用し、乱数を生成し、DBアプリケーションを作れるところまで道筋を示します。

二度とHaskellに触れないとしても、この言語(と、その思想)に触れることで、
・安全で機能的なコードを書くこと
・問題を注意深くモデル化すること
を身につけることができます。

つまるところ、抽象化についてより深く思考し、あらゆる言語によるコードの潜在的なバグの発見に繋がります。
また、プログラミング言語理論を理解する上での特訓にもなるはずです。というのも、Haskellの言語機能は、常に新しいプログラミング言語へ、そして既存の言語での新しい機能として発展しているからです。

この本は、
・プログラミングスキルとプログラミング言語の理解を次のレベルに引き上げたい、既存のプログラミング経験のある人
を対象としていますが、根気強く読み解いていけば、必ず視野は広がります。そして、Haskellとその機能をよく知っていれば、今後何年にもわたってプログラミングの地平線を越えて何が起きているのかを理解する上での足がかりとなります。

本書は
Will Kurt , "Get Programming with Haskell"
ISBN 9781617293764, Manning Publications Co., 2018 March

の日本語版です。

【本書のポイント】
・7つのユニットと42の短い章構成
・節ごとの理解度チェック
・章ごとの練習問題
・豊富な補足事項とポイント詳解

【読者が得られること】
・関数型プログラミングの基礎知識
・Haskellによる実用的なプログラミング能力
・抽象度の高い思考方法

実用度重視のHaskell入門書
関数型プログラミングの雄・Haskellで副作用のないプログラムを作る!
本書の内容

 LESSON 1 Haskellを使用するための準備

UNIT 1 関数型プログラミングの基礎
 LESSON 2 関数と関数型プログラミング
 LESSON 3 ラムダ関数とレキシカルスコープ
 LESSON 4 ファーストクラス関数
 LESSON 5 クロージャと部分適用
 LESSON 6 リスト
 LESSON 7 再帰のルールとパターンマッチング
 LESSON 8 再帰関数の記述
 LESSON 9 高階関数
 LESSON 10 演習:関数型オブジェクト指向プログラミング

UNIT 2 型の紹介
 LESSON 11 型の基礎
 LESSON 12 カスタム型の作成
 LESSON 13 型クラス
 LESSON 14 型クラスを使用する
 LESSON 15 演習:秘密のメッセージ

UNIT 3 型によるプログラミング
 LESSON 16 直積型と直和型
 LESSON 17 合成によるデザイン:SemigroupとMonoid
 LESSON 18 パラメータ化された型
 LESSON 19 Maybe型:欠損値に対処する
 LESSON 20 演習:時系列

UNIT 4 HaskellのI/O
 LESSON 21 Hello World!:IO型の紹介
 LESSON 22 コマンドラインの操作と遅延I/O
 LESSON 23 テキストとUnicodeの操作
 LESSON 24 ファイルの操作
 LESSON 25 バイナリデータの操作
 LESSON 26 演習:バイナリファイルと書籍データの処理

UNIT 5 コンテキストでの型の操作
 LESSON 27 Functor型クラス
 LESSON 28 Applicative型クラス:関数をコンテキスト内で使用する
 LESSON 29 コンテキストとしてのリスト:Applicative型クラスをさらに掘り下げる
 LESSON 30 Monad型クラス
 LESSON 31 do表記を使ってMonadを扱いやすくする
 LESSON 32 リストモナドとリスト内包
 LESSON 33 演習:HaskellでのSQL形式のクエリ

UNIT 6 コードの整理とプロジェクトのビルド
 LESSON 34 Haskellコードをモジュールにまとめる
 LESSON 35 stackを使ってプロジェクトをビルドする
 LESSON 36 QuickCheckを使ったプロパティテスト
 LESSON 37 演習:素数ライブラリの作成

UNIT 7 実践Haskell
 LESSON 38 HaskellのエラーとEither型
 LESSON 39 HaskellでのHTTPリクエストの作成
 LESSON 40 Aesonを使ったJSONデータの処理
 LESSON 41 Haskellでのデータベースの使用
 LESSON 42 Haskellでの効率的でステートフルな配列

APPENDIX A あとがき:次のステップ
 A.1 Haskellをさらに詳しく調べる
 A.2 Haskellよりも強力な型システム
 A.3 他の関数型プログラミング言語

APPENDIX B 練習問題の解答

本書は付属データの提供はございません。

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2022年10月23日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 026
図3-1
(画像クリックで拡大)
(画像クリックで拡大)
2020.01.27
1刷 033
Q3-1内テキスト
ラムダ関数を記述する練習として、レッスン3で取り上げた
ラムダ関数を記述する練習として、レッスン2で取り上げた
2020.01.27
1刷 046
5.1クロージャ:関数を使って関数を作成する 図5-1
getIfEven f =
genIfEven f =
2019.12.05
1刷 048
図5-4:クロージャでのhost値のキャプチャ内
getHostRequestBuilder host = (\apikey resource id ->
                                           getRequestUrl host aipkey resource id)
getHostRequestBuilder host = (\apikey resource id ->
                                           getRequestUrl host apikey resource id)
2020.01.06
1刷 153
クイックチェック14-1
アラビア数字
ローマン数字
2022.10.23
1刷 241
リスト20-10最終行
combinedValues = map ( ˘ -> Map.lookup v updateMap ) completeTimes
combinedValues = map ( \v -> Map.lookup v updateMap ) completeTimes
2020.01.06
1刷 241
リスト20‐10内6行目
completeTimes = [(minimum t1) .. (maximum t2)]
completeTimes = [(minimum bothTimes) .. (maximum bothTimes)]
2021.08.17
1刷 364
図29-1
(画像クリックで拡大)
(画像クリックで拡大)
2020.02.03
1刷 401
クイックチェック31-4
(Maybe String -> Strin)型
(Maybe String -> String)型
2021.09.04
1刷 506
リスト39-3内
apiPath = "/cdo-Web/api/v2/datasets"
apiPath = "/cdo-web/api/v2/datasets"
2020.03.24
1刷 574
Q3-1ソースコード内
makeChange
calcChange
2020.01.27

感想・レビュー

さん

2019-08-19

実用度重視のHaskell(ハスケル)入門書。Haskellは純粋関数型プログラミングらしい。自分自身は、STATAとMATLABをメインに少しRをい使ったことしかないので、Haskellに興味がわいた。安全で機能的なコードを書く、問題を注意深くモデル化することが何よりも重要となる。Haskellによる実用的なプログラミング能力の部分は非常に有益だった。インストールしたら必ず購入しようと思う。