Javaによる関数型プログラミング

ということで、いい感じの厚さの本でした。これです。

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

状態の変更が可能なコードは、多くの不確定要素を持っています。より多くの者に変更の可能性が存在すると、より多くのコンポーネントが破綻し、より多くのエラーが混入する可能性があります。複数の変数が変更されるようなコードは理解しにくく、並列化も困難です。不変性(immutability)はこれらの問題を根本から断ち切ります。 Javaは不変性をサポートしますが、強制はしません。しかし開発者は不変性を強制できます。開発者はオブジェクトの状態を変更するという長年の習慣を改めなければなりません。可能な限り不変オブジェクトを使用しなければならないのです。 「Effective Java」におけるJoshua Blockの「オブジェクトは不変として扱え」という賢者のアドバイスにしたがって、変数、フィールド、パラメータを宣言する際、なるべくfinal宣言するようにしてください。 オブジェクトを生成する際は、Stringクラスのような不変オブジェクトを優先的に使ってください。コレクションを扱う場合はArrays.asList()やCollectionsクラスのunmodifiableList()メソッドなどを使って、不変性のものか、unmodifiableのコレクションを生成してください。 可変性(muttability)、つまり状態変更が許可されているような性質をもたせるのを避けることで純粋関数を記述できます。純粋関数とは、副作用を持たない関数のことです。 *1

この本は厚すぎないので良いのではないかと思います。 この辺と

JavaScriptで学ぶ関数型プログラミング

JavaScriptで学ぶ関数型プログラミング

一緒に読んだりするのもいいのかもしれませんね。たぶん持ってる。記憶がある。

話は違いますが、10.10へOSアップデートする気力がないというか、新しいAir買うまで、10.9のままでいいのではないかと思ってしまっています。 セットアップめんどくさいのでね。いや、それも、どうかね。

*1:--『Javaによる関数型プログラミング』 --p.16-- 1.4.2 不変性を尊重する

だめなやつ

これは買わないとだめなやつで、メモメモしておきますが、相変わらず高いね。

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築

Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築

積んでる本なが増えないように少しづつでも読むように。書くように。

2歳の息子の言葉

パイ先生

いつからか、保育園の先生を「しぇんしぇー」と言えるようになっていました。そのうち「パイ先生」という言葉を話すようになりました。私もうちの奥さんもどうもこの言葉の意味がわかりませんでした。???

私は保育園には先生が何人かいるので、私にとっては何人かでも息子にとっては「いっぱい」「たくさん」のことなのかと思って、勝手に「いっぱい先生が保育園にはいるんだよ」ということを教えてくれているという意味に解釈したりもしていたのですが、どうも違うようだと感じるのは、髪を後ろでしばっている女性を見て指差し「パイ先生」といった時など。

結論からいうと「まい先生」のことのようです!

かわいい。

アンパン

アンパンマンのことは省略して「アンパン!」と言います。

かわいい。

マパ

「ママ」「パパ」はもうずいぶん前から言えていて、もちろん区別も付いているのですが、私の事をママと呼ぶことがあります。そして上記の「マパ」は、途中で間違いに気づいたが、間に合わず!の際の私の呼び名です。

「マパ」 「パパだよ」 「パパ!」

かわいい。

Gradle Wrapperのこと

もう

本当に全く時間がとれないので、せめて1日30分はちゃんとしたコード書くようにするね。

GradleWrapper

GradleWrapperを作成することで、Javaがインストールされている環境であれば、どこでもそのテンプレートディレクトリを持ってきて、gradlewコマンドでgradleが実行できる(Gradleが自動的にダウンロードされるため)ということのようです。

IntelliJとかAndroidStudioとかでAndroid用のGradleプロジェクトを作ると勝手に出来てたりしましたような気がしました。 このテンプレートフォルダを作成し、githubに置いておくところまでやっておく。

ディレクトリgradlewTmpの作成

$HOME/Documents/GradleSample配下に作成。

 $ mkdir gradlewTmp

そこにbuild.gradle作成

task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}

gradlewTmpディレクトリで以下を実行

gradle wrapper

以下のようなディレクトリ構成に

terubookAir:gradlewTmp teru1$ ls -la
total 32
drwxr-xr-x  7 teru1  staff   238  8 13 17:19 ./
drwxr-xr-x  9 teru1  staff   306  8 13 17:13 ../
drwxr-xr-x  3 teru1  staff   102  8 13 17:19 .gradle/
-rw-r--r--  1 teru1  staff    63  8 13 17:18 build.gradle
drwxr-xr-x  3 teru1  staff   102  8 13 17:19 gradle/
-rwxr-xr-x  1 teru1  staff  5080  8 13 17:19 gradlew*
-rw-r--r--  1 teru1  staff  2404  8 13 17:19 gradlew.bat

GitHubにPushする

まず、git管理にしてローカルコミット

git init
git add .
git commit -m 'first'

GitHubにgradlewTmpというリポジトリを作成し(READMEファイルなしで) 以下で、ローカルからGitHubにpushする。

git remote add origin https://github.com/kijitoraneko/gradlewTmp.git
git push -u origin master

使用する場合

前提

環境にJavaがインストールされていること

GitHubからクローン

git clone https://github.com/kijitoraneko/gradlewTmp.git

gradlewを実行

./gradlew

実行できるタスクの確認

./gradlew tasks

これで

いつでもこのテンプレートをクローンすれば、Gradleがない環境でも勝手にインストールしてくれて、Gradleのタスクを実行できる。gradlewならね。ということだそう。

読んだ

弱いつながり 検索ワードを探す旅

弱いつながり 検索ワードを探す旅

好きな文

僕が一番好きな東浩紀氏の文章は阿部和重氏の『インディビジュアルプロジェクション』の文庫版に寄せたあとがきです。 これは本当になんというか感動する文章で、 当時、おそらく1998年ころだと思いますが、自分にとって相当な来てる感をもたらすものでした。

始めての文

『存在論的郵便的』がおそらくはじめて読んだ著作になります。たくさん傍線が引いてありますが、もちろん理解はしていません。

感想

今回の感想ですが、面白かったです。そんな感想ですw twitterで東さんみずからいろいろな人の感想をRTしてるので、それをみるのもいいかもしれませんね。 ちょっとうざいという意見もあるようですが、私は特に気になりません。

関係がないこと

アウシュビッツのことが書かれていますが、 パスポートすら持ってない、飛行機?絶対落ちるだろ連想の強い僕をしても、 死ぬまでにアウシュビッツだけは行っておきたいとまた強く思いました。

眠いこと

気づいたら、AM1:00を回っています。ラジオやってるよ。今日も。彼の。TBS!

息子が2歳になること

所感

もうすぐ息子が2歳になります。 あっという間といえばあっという間で。

自分が男の子の親になるまでは、 街で男の子を見かけても、あまりかわいいと思いませんでした。

でも、今は息子だけでなく、だれでも可愛いですね。 なんなんでしょう。

最近

否定はすべて「ない!」

例えば、 「まだ食べるかい」「ない」 「出かけるかい」「ない」 「もう寝るよ」「な〜い」 という感じです。

発音に強弱をつけて操っています。

赤いもの、青いものを見つけては「赤い」「青い」

はじめに覚えたのは「赤い」で、最近は「青い」も普通に出てくるようになりました。 黒い、白いも言えるようになりました。

電車がとにかく好き

最寄り駅近くの踏切にいったり、あてもなく電車に乗って出かけています。本当に好きなようです。 自宅ではプラレールを走らせたり、電車DVDを見たりしています。 近くの児童館の図書室では、絵本ももちろん読みますが、同じくらい鉄道ファンもお気に入りです。

電車からの影響なのか「速い」が好き

表現が難しいですが、速いものを「速い」と教えてくれます。 電車もそうですが、自分でも早く動き、「速いね」とこちらが言うとニコッととても喜んでいます。

接続詞が「げぇ」

よく登場するのは、図鑑のような本を見ている時に、 写真を指指し「げぇ」 「これは、新幹線だよ」 次の写真を指先し「げぇ」 「これは、山手線だよ」 とそんな感じです。それ以外でもよく使っています。「げぇ」と私には聞こえているのですが、本当の発音は定かではありません。

返事は元気よく「はい!」

保育園で教わったのでしょうか、気づいたら「うん」とはあまり言わず、 だれにでも「はい!」と元気に返事をしています。

言葉

ママ、パパ、じぃ~じ、ばぁーば、ぞう、きりん、ワンワン、にゃー、カアカア、チュンチュン、ポッポ、ねんね、まんま、せんせぇ、はい!、がおぉー(怪獣?)、しゃしん、め、はな、くち、みみ、赤い、青い、あった、あれ〜?、でんしゃ、はやい、かんかん(踏切のこと)、くれーん、がー(シャベルカー)、ぼう(遮断機)、アンパン(アンパンマンのこと)

ほかにもあるだろうけれど、今思い出せたものです。

これから

もっと、たくさん、一緒に、遊ぶ。

TypeScriptはじめて書きました

TypeScriptリファレンス Ver.1.0対応

TypeScriptリファレンス Ver.1.0対応

この本の電子版買ったので、書いてみた。

出鼻をくじかれる

私はMacでVisualStudioはインストール出来ないので、IntelliJで、この本の「2-3TypeScriptコンパイラ」のサンプル書いてみたら、 いきなりメソッドないと言われた。

f:id:kijitoraneko:20140528165325p:plain

この本にも書いてあるけれど、WebStorm(IDEA)はまだTypeScriptサポートが完全ではないようですね。 tscではコンパイルは通ったし、ちゃんとjsファイル作られた。

生成されたJavaScript

よくある分かりにくいJavaScript  自動でドン!

var Greeting;
(function (Greeting) {
    var Hello = (function () {
        function Hello(text) {
            this.text = text;
        }
        Hello.prototype.say = function () {
            console.log(this.text);
        };
        return Hello;
    })();
    Greeting.Hello = Hello;
})(Greeting || (Greeting = {}));
var hello = new Greeting.Hello("Hello World");
hello.say();

即時関数が2つある時点で、勘弁ですね。


なんかJavaScriptの勉強にもなりますね。


こんなのも出るのですね。頑張れTypeScriptと俺。