読書会(Java 8 Lambdas: Pragmatic Functional Programming)第1回議事録

[ 戻る ]


================================================================================
Java読書会BOF 「Java 8 Lambdas: Pragmatic Functional Programming」を読む会 第1回
================================================================================

.. csv-table:: 開催概要

   "日時", "2014年5月17日 10:00 - 17:00"
   "場所", "川崎市教育文化会館 第3会議室"
   "出席者(敬称略)", "井上、岩室、遠藤、小棚木、門脇、高橋(徹)、田辺、中沢、根本、村山、山田、吉本(書記)"

議事
====

Preface
-------

* 翻訳が抜けていたため、巻末の著者と表紙の動物の説明は、次回に持ち越し。

* 「モナドではなく、言語レベルの遅延評価でもなく」とは、どういうことか?

  * 言語的に持っていない限定的ということか?

  * 現実のプログラマーには、こちらの方(機能が限定的)がいいということか?

* Pragmatic Programmerは、Academic Programmerの対語か?

* parallelismとconcurrentとは、厳密には違うものか?

  * 並行と並列ということ?

  * どちらもコンピュータ用語ではある。

* "Katas"とは何か?

  * 空手の「型」のことか?

  * ということは、日本語ということ?

* Kindle版には、紙本にはあるが表示されない図がある。

  * PDF版では表示される。

  * オライリーのe-bookを買うと、PDF版も付いてくる。

  * amazonでは、追加料金を払うとPDF版が貰えるらしい。

1 Introduction
--------------

* The elephant in the room

  * 誰もが知っていながら口をつぐむこと、という慣用句。

* "bulk"という単語は、日本語にし難い単語の1つ。

  * 巨大な?

* Lazyの意味は、遅延? 怠惰?

  * これも日本語にし難い。

* grandfather'sとは?

  * 慣用句?

  * 「大きな古時計」という歌の歌詞にも使われている。

  * 「古い」の優しい言い方か?

* "->"の読み方は?

  * アロー演算子?

  * Javaの言語仕様で説明されているかも。

2 Lambda Expressions
--------------------

* How to Spot a Lambda in a Haystack

  * 「干草の中から針を探す」という英語の諺からか?

* Lambdaの例外処理にバグがあったと記憶している、どうなったのか?

* Javaもやっと、コードが短い方がいいとされる様になった?

* "target type"とは?

  * 型推論のためのものか?

* 例2-4の配列の初期化は、Java的にはもっと冗長に書くべきでは?

  * 右辺に、new String()を記述するとか?

  * これはプリミティブ型とString限定か?

  * Object型でも可能?

  * 本当は左辺のStringも取りたいのだが。

  * var型がJavaにも欲しい。

    * JavaScriptに毒された?

    * Javaの場合、Scalaでは?

* Using Valuesも日本語にし難い。

* 例2-5のcaptureの公式の訳は?

  * このコード例のfinalの説明なら、Java8より前の言語仕様に載っているかも。

* P9の10行目の文の意味が分からない。

  * assigned toの目的語は何だろう。

  * 実質finalや外の変数を変更できないとか、中途半端なものを実装したのが、そもそも問題なのか?

* Functional Interfaceは、関数インターフェースなのか、関数型インターフェースなのか。

  * 関数型を入れようとして失敗した経緯があるが、公式の訳はOracle待ちか。

  * 関数型は分かりやすいから、とりあえず使っているだけ。

* P10の8行目のnameは、何に対して与えるものなのか?

  * 結局のところ、よく分からない。

* "+"は何?

  * "+"の文字化け?

  * この文字でググれるので、この文字が出力されているようだ。

* Exercises

  * 1-cのNo.3は、X=1ならどうなる?

    * void?

    * Javaの代入式は値を返さない。

    * ちなみに1-cの正解は、No.1。

  * 2-bは、無ければスレッドローカルのDateFormatterを作るということか?

  * 3-cは、曖昧のためにエラーか?

3 Streams
---------

* "eager"にはしっくりくる日本語が無い。

  * "先行"というのも微妙。

  * カタカナでいいのでは?

  * そもそも"eager"という単語自体、Hibernateでしか聞いたことが無い。

* 例3-6のコードでは、アーティスト名は全員出力されるのでは?

  * そうだと思う。return文の前に出力しているので。

  * collectionからstreamは、一足飛び過ぎるのでは?

    * まずforEachをしてからstreamがいいはず。

    * collectionには、終端処理としてforEachが追加されている。

* 外部イテレータから内部イテレータへの話なら、eachの説明がいるのでは?

  * Java的には使用しない中間オブジェクトの説明をしても仕方が無いからでは?

* Collectors.toList()は何?

  * Collectorsオブジェクトを返す?

* 今では、comparatorがこんなに簡単になるのか。


.. note:: 次回は、p.27「A Common Pattern Appears」から。


[ 戻る ]