[内容]
一方的にやり方を説く類書と異なり、純粋関数型プログラミングで用いられるモナドによる抽象化などについて、どうしてそれを用いるのが必然なのかを成り立ちから説明してくれています。
しかし、内容は概念的・抽象的で、説明するよりは練習問題を通じて体感させる方針のためかなり難解です。
得られるものには5つ星をつけてもいいのですが、通常レベルのプログラミングでは必要ないことを考えると、気軽に手を出す本ではないように思います。
[要求される読者レベル]
中級以上のプログラミング経験は必要です。
特にPart II が非常に読みづらいので、Akka, ScalaCheck, scala.util.parsing.combinatorまで知っていると多少有利かもしれません。
また、Haskellをある程度知っていないと、この本が何を目指しているのかわからないと思います。
[GitHub(英語版Web資料)]
練習問題解答は、章番号を書いていないため探しにくいです。
各章に「チャプターノート参照」とありますが、あまり参照元の説明になっていません。
[その他]
FRP(Functional Reactive Programming)については本文には説明がなく、GitHub上で触れるのみだったのが少し残念でした。
Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear) (日本語) 単行本(ソフトカバー) – 2015/3/20
-
本の長さ384ページ
-
言語日本語
-
出版社インプレス
-
発売日2015/3/20
-
ISBN-104844337769
-
ISBN-13978-4844337768
この商品をチェックした人はこんな商品もチェックしています
ページ: 1 / 1 最初に戻るページ: 1 / 1
- Visual Studio Code実践ガイド —— 最新コードエディタを使い倒すテクニック単行本(ソフトカバー)
- プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発単行本(ソフトカバー)
- 「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか大型本
- マイクロサービスパターン[実践的システムデザインのためのコード解説] (impress top gear)Chris Richardson単行本(ソフトカバー)
- Docker実践ガイド 第2版 (impress top gear)単行本(ソフトカバー)
- 新装版 達人プログラマー 職人から名匠への道Andrew Hunt単行本(ソフトカバー)
この商品を買った人はこんな商品も買っています
ページ: 1 / 1 最初に戻るページ: 1 / 1
- Scalaスケーラブルプログラミング第3版Martin Odersky単行本(ソフトカバー)
- 実践Scala入門瀬良 和弘単行本(ソフトカバー)
- ソフトウェアデザイン 2021年3月号谷本 心雑誌
- ゼロからのOS自作入門単行本(ソフトカバー)
- Scala逆引きレシピ単行本(ソフトカバー)
- ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本単行本(ソフトカバー)
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
1分以内にKindleで Scala関数型デザイン&プログラミング―Scalazコントリビューターによる関数型徹底ガイド をお読みいただけます。
Kindle をお持ちでない場合、Get your Kindle here Kindle 無料アプリのダウンロードはこちら。
Kindle をお持ちでない場合、Get your Kindle here Kindle 無料アプリのダウンロードはこちら。
商品の説明
内容(「BOOK」データベースより)
洗練された副作用のない手法!再利用/並列化/一般化/テストが容易になる。データ構造/入出力/エラー処理を関数型で記述。ライブラリのプログラムを設計・開発。関数型プログラミングの共通パターンを見抜く。
著者について
■著者
◎Paul Chiusano(ポール・キウザーノ)
Scalaや関数型プログラミングなどのソフトウェア開発コンサルタント。2008年以降、Scalaによる関数型プログラムを商用ベースで展開。
◎Rúnar Bjarnason(ルナー・ビャルナソン)
プログラマー歴は12年。2008年から関数型プログラミングに注力。関数型プログラミングやScalaプログラミングをテーマにブロガーやスピーカーとして活躍中。ScalazライブラリやJava関数型ライブラリ開発の主要なコントリビューターである。
■翻訳者
◎株式会社クイープ
1995年、米国サンフランシスコに設立。コンピュータシステムの開発、ローカライズ、コンサルティングを手がけている。2001年に日本法人を設立。主な訳書に、『IT技術者なら知っておきたいストレージの原則と技術』、『Smashing Android UI』、『シスコ技術者認定試験 公式ガイドブック Cisco CCENT/CCNA ICND1 100-101J』、『シスコ技術者認定試験 公式ガイドブック Cisco CCNA Routing and Switching ICND2 200-101J』、『Raspberry Pi ユーザーガイド 第2版』などがある(いずれもインプレス発行)。http://www.quipu.co.jp
■テクニカルレビューア
◎水島 宏太
東京都の某社にてエンジニアとして活動中。プログラミング言語(特にScala)や型システム、パーサーなどといった話題が大好き。一般社団法人Japan Scala Association代表理事。
◎吉田 憲治
2013年、2014年と、Scalazへ一番多くコミットしているコミッター。twitterアカウント @xuwei_k
◎Paul Chiusano(ポール・キウザーノ)
Scalaや関数型プログラミングなどのソフトウェア開発コンサルタント。2008年以降、Scalaによる関数型プログラムを商用ベースで展開。
◎Rúnar Bjarnason(ルナー・ビャルナソン)
プログラマー歴は12年。2008年から関数型プログラミングに注力。関数型プログラミングやScalaプログラミングをテーマにブロガーやスピーカーとして活躍中。ScalazライブラリやJava関数型ライブラリ開発の主要なコントリビューターである。
■翻訳者
◎株式会社クイープ
1995年、米国サンフランシスコに設立。コンピュータシステムの開発、ローカライズ、コンサルティングを手がけている。2001年に日本法人を設立。主な訳書に、『IT技術者なら知っておきたいストレージの原則と技術』、『Smashing Android UI』、『シスコ技術者認定試験 公式ガイドブック Cisco CCENT/CCNA ICND1 100-101J』、『シスコ技術者認定試験 公式ガイドブック Cisco CCNA Routing and Switching ICND2 200-101J』、『Raspberry Pi ユーザーガイド 第2版』などがある(いずれもインプレス発行)。http://www.quipu.co.jp
■テクニカルレビューア
◎水島 宏太
東京都の某社にてエンジニアとして活動中。プログラミング言語(特にScala)や型システム、パーサーなどといった話題が大好き。一般社団法人Japan Scala Association代表理事。
◎吉田 憲治
2013年、2014年と、Scalazへ一番多くコミットしているコミッター。twitterアカウント @xuwei_k
著者略歴 (「BOOK著者紹介情報」より)
キウザーノ,ポール
Scalaや関数型プログラミングなどのソフトウェア開発コンサルタント。2008年以降、Scalaによる関数型プログラムを商用ベースで展開
ビャルナソン,ルナー
プログラマー歴は12年。2008年から関数型プログラミングに注力。関数型プログラミングやScalaプログラミングをテーマにブロガーやスピーカーとして活躍中。ScalazライブラリやJava関数型ライブラリ開発の主要なコントリビューターである(本データはこの書籍が刊行された当時に掲載されていたものです)
Scalaや関数型プログラミングなどのソフトウェア開発コンサルタント。2008年以降、Scalaによる関数型プログラムを商用ベースで展開
ビャルナソン,ルナー
プログラマー歴は12年。2008年から関数型プログラミングに注力。関数型プログラミングやScalaプログラミングをテーマにブロガーやスピーカーとして活躍中。ScalazライブラリやJava関数型ライブラリ開発の主要なコントリビューターである(本データはこの書籍が刊行された当時に掲載されていたものです)
登録情報
- 出版社 : インプレス (2015/3/20)
- 発売日 : 2015/3/20
- 言語 : 日本語
- 単行本(ソフトカバー) : 384ページ
- ISBN-10 : 4844337769
- ISBN-13 : 978-4844337768
-
Amazon 売れ筋ランキング:
- 431,683位本 (の売れ筋ランキングを見る本)
- - 500位開発技法
- - 2,313位ソフトウェア開発・言語
- カスタマーレビュー:
カスタマーレビュー
5つ星のうち4.3
星5つ中の4.3
6 件のグローバル評価
評価はどのように計算されますか?
全体的な星の評価と星ごとの割合の内訳を計算するために、単純な平均は使用されません。その代わり、レビューの日時がどれだけ新しいかや、レビューアーがAmazonで商品を購入したかどうかなどが考慮されます。また、レビューを分析して信頼性が検証されます。
トップレビュー
上位レビュー、対象国: 日本
レビューのフィルタリング中に問題が発生しました。後でもう一度試してください。
2016年3月5日に日本でレビュー済み
違反を報告
Amazonで購入
16人のお客様がこれが役に立ったと考えています
役に立った
2016年7月15日に日本でレビュー済み
Amazonで購入
HaskellやErlangに馴染んでいる人が一般的なScalaのプログラムを見ると「なんじゃこの醜いプログラムは。これなら普通にJava使えよ」と思うことが多く、オブジェクト指向と関数型のハイブリッド言語なんてロクなもんじゃないな、と決めつけてしまう人も多いことと思う。
そんなあなたに「副作用なしのちゃんとした関数型言語のスタイルでScalaを使うことができるよ」ということを教えてくれるのがこの本。
「最近Scalaが人気あるようだけど勉強する気にならないなぁ」という方でも、この本を読めば「Scalaもまあ使えそうだ」という気になるかも知れない。
(Javaの豊富なライブラリが使える、Java VM上で動かせる、という点以外にHaskellやErlangより優れた言語だと思える部分は特にないかも知れないけど)
そんなあなたに「副作用なしのちゃんとした関数型言語のスタイルでScalaを使うことができるよ」ということを教えてくれるのがこの本。
「最近Scalaが人気あるようだけど勉強する気にならないなぁ」という方でも、この本を読めば「Scalaもまあ使えそうだ」という気になるかも知れない。
(Javaの豊富なライブラリが使える、Java VM上で動かせる、という点以外にHaskellやErlangより優れた言語だと思える部分は特にないかも知れないけど)
2016年4月30日に日本でレビュー済み
Amazonで購入
* おすすめ
考えることが大好きな筋金入りのプログラマーや数学好きは、とても楽しめると思います。
* 翻訳
英語版も読んでおりますが、翻訳は普通で特に気になりません。
* 内容
副作用の無い純粋関数でのScalaを見事に表現されている。
定義→定理→証明で実力をつけていく数学書のスタイルでとても効果が実感しやすい。
Scala版のSICPみたいな本。
* 前提
ただし、前提としてCやJavaでフィボナッチ数列の再帰処理をすらっとかける程度の基礎力は無いと読めない。
自分で汗をかいて考えずに、答えを覚えて利用するタイプのプログラマー?も読めない。
考えることが大好きな筋金入りのプログラマーや数学好きは、とても楽しめると思います。
* 翻訳
英語版も読んでおりますが、翻訳は普通で特に気になりません。
* 内容
副作用の無い純粋関数でのScalaを見事に表現されている。
定義→定理→証明で実力をつけていく数学書のスタイルでとても効果が実感しやすい。
Scala版のSICPみたいな本。
* 前提
ただし、前提としてCやJavaでフィボナッチ数列の再帰処理をすらっとかける程度の基礎力は無いと読めない。
自分で汗をかいて考えずに、答えを覚えて利用するタイプのプログラマー?も読めない。
2015年4月30日に日本でレビュー済み
Amazonで購入
私は大学の講義でOCamlを少し勉強して、他にもいくつかのプログラム言語を知っています。Scalaについては、
7つの言語 7つの世界
を読み本当に軽く知っている程度でした。
この本はまずPart 1では関数型プログラミングで一般的なListやOptionといったデータ構造に触れつつ、かつ最初の段階からflatMapやmapといった関数を実装させる練習問題を盛り込んでいます。
これらを用いて、Part 2では具体的なデータ構造の議論をする前に、代数の設計を初めて徐々に具体的な実装へ落とすというトップダウンな開発方法を紹介しています。この部分はやや難解で、練習問題もあまり解けずとりあえず読み進めることにしました。
Part 3はPart 2で実装した諸々をさらに抽象化するために、モノイドやモナド、ファンクターを紹介しています。個人的な感想ですが、知りたいなと思うことが結構練習問題になっており、この本単体で(答えを見ずに)読み進めていくのはちょっと難しいなと思いました。ただ、13章で紹介されていたスタックオーバーフロー回避のためのトランポリン化というのは、大変興味深いものでとても参考になりました。
Part 4はさらっと読んだ感じですが、この本で積みあげてきたことがどれだけ具体的な実装に落とせるのか、ということをテーマにしている印象です。
この本全体の感想として、まず組版や翻訳には特に問題はないと思います。私は以前 Scalaスケーラブルプログラミング を図書館で借りて読もうとしましたが、なんだかフォントが気にいらずに結局読みませんでした。この本は組版や翻訳にそういう違和感は感じません。
練習問題ですが、私はこの本の約半分くらい(答えを見たものも含めて)解きました。この本は章末などに練習問題がまとめてあるタイプではなくて、本文のそこかしこに問題があるタイプの本です。練習問題が解けていることを前提にして文章が進んでいくようなスタイルになっていますので、この本を読む際は練習問題を解くぞという気持ちが必要だと思います。
また、この本は章と章が密接に結びついていると感じました。つまり、どこかの章は興味が薄いので、先におもしろそうな部分を読もうと思っても、それはちょっと難しいと思います。(ただ、最初の方にある章は、関数型プログラミングをある程度知っている人なら飛ばしてもいいと思いました)
私個人の考えですが、この本はたぶん全くの初心者が読むのは少々難しいと思います。ここで言う初心者とは「プログラミングの初心者」であって、「Scalaの初心者」ではないと思います。また、この本でScalaを知るというのも、関数型プログラミングの側面しか触れていないという点でやや厳しいかなと思います。この本は、何か別の本や、あるいは大学などで少し関数型プログラミングの教養があって、それでScalaの関数型プログラミングの側面を知りたいと思う方におすすめできる良書だと思います。
この本はまずPart 1では関数型プログラミングで一般的なListやOptionといったデータ構造に触れつつ、かつ最初の段階からflatMapやmapといった関数を実装させる練習問題を盛り込んでいます。
これらを用いて、Part 2では具体的なデータ構造の議論をする前に、代数の設計を初めて徐々に具体的な実装へ落とすというトップダウンな開発方法を紹介しています。この部分はやや難解で、練習問題もあまり解けずとりあえず読み進めることにしました。
Part 3はPart 2で実装した諸々をさらに抽象化するために、モノイドやモナド、ファンクターを紹介しています。個人的な感想ですが、知りたいなと思うことが結構練習問題になっており、この本単体で(答えを見ずに)読み進めていくのはちょっと難しいなと思いました。ただ、13章で紹介されていたスタックオーバーフロー回避のためのトランポリン化というのは、大変興味深いものでとても参考になりました。
Part 4はさらっと読んだ感じですが、この本で積みあげてきたことがどれだけ具体的な実装に落とせるのか、ということをテーマにしている印象です。
この本全体の感想として、まず組版や翻訳には特に問題はないと思います。私は以前 Scalaスケーラブルプログラミング を図書館で借りて読もうとしましたが、なんだかフォントが気にいらずに結局読みませんでした。この本は組版や翻訳にそういう違和感は感じません。
練習問題ですが、私はこの本の約半分くらい(答えを見たものも含めて)解きました。この本は章末などに練習問題がまとめてあるタイプではなくて、本文のそこかしこに問題があるタイプの本です。練習問題が解けていることを前提にして文章が進んでいくようなスタイルになっていますので、この本を読む際は練習問題を解くぞという気持ちが必要だと思います。
また、この本は章と章が密接に結びついていると感じました。つまり、どこかの章は興味が薄いので、先におもしろそうな部分を読もうと思っても、それはちょっと難しいと思います。(ただ、最初の方にある章は、関数型プログラミングをある程度知っている人なら飛ばしてもいいと思いました)
私個人の考えですが、この本はたぶん全くの初心者が読むのは少々難しいと思います。ここで言う初心者とは「プログラミングの初心者」であって、「Scalaの初心者」ではないと思います。また、この本でScalaを知るというのも、関数型プログラミングの側面しか触れていないという点でやや厳しいかなと思います。この本は、何か別の本や、あるいは大学などで少し関数型プログラミングの教養があって、それでScalaの関数型プログラミングの側面を知りたいと思う方におすすめできる良書だと思います。
2015年6月22日に日本でレビュー済み
Scalaはオブジェクト指向型言語と関数型言語の特徴を統合したマルチパラダイムの言語です。
Javaなどに慣れているプログラマがScalaを使うと、オブジェクト指向型言語の側面を活かしつつ
クロージャー・パターンマッチ・型推論などといった機能を添え物として使う「ベターJava」的な使い方になりがち。
それでは、関数型のパラダイムを完全に理解するにはHaskellなどの方がより良いのかという疑問が生じますが
本書はこれにNoを突きつけ、Scalaプログラミングを副作用のない純粋関数型の手法で設計・開発する方法を解説します。
それは、ThoughtWorksアンソロジーの「オブジェクト指向エクササイズ」同様の「徹底した制約で特定のパラダイムを理解させる」アプローチです。
Scalaで純粋関数型プログラミングという本書のエクササイズを通じて、読者はオブジェクト指向とは異なる種類の抽象性や美しさに気づくでしょう。
正直、全てをこなすのは大変ですが、それを行う価値はあります。全てのプログラマにおすすめです。
Javaなどに慣れているプログラマがScalaを使うと、オブジェクト指向型言語の側面を活かしつつ
クロージャー・パターンマッチ・型推論などといった機能を添え物として使う「ベターJava」的な使い方になりがち。
それでは、関数型のパラダイムを完全に理解するにはHaskellなどの方がより良いのかという疑問が生じますが
本書はこれにNoを突きつけ、Scalaプログラミングを副作用のない純粋関数型の手法で設計・開発する方法を解説します。
それは、ThoughtWorksアンソロジーの「オブジェクト指向エクササイズ」同様の「徹底した制約で特定のパラダイムを理解させる」アプローチです。
Scalaで純粋関数型プログラミングという本書のエクササイズを通じて、読者はオブジェクト指向とは異なる種類の抽象性や美しさに気づくでしょう。
正直、全てをこなすのは大変ですが、それを行う価値はあります。全てのプログラマにおすすめです。