これであたかもifのように見える構文となります。名前渡しを利用することによって関数側で参照されるまで評価されないように出来ます。式の集合なので、複数の行を書いても構いません。とまあこんな風に関数呼び出しひとつ取ってもいろいろな書き方があります。コードを読むときや、「こう書きたいんだけど......」というときにどう定義すれば良いか分からなかったりします。とあるルールといくつかの手法の組み合わせなことが多いです。これはひとつひとつ学んで飲み下していく他ありません。私のおすすめはScalaスケーラブルプログラミング、いわゆるコップ本です。頭から順に読めばほとんどの疑問は解決するかと思います。覚えるということに近道もなければ魔法もないと思うので、Scalaに興味があるのであれば是非とも。コンパイラは魔法ではないScalaを使う側は気楽だと言いましたが、ずっと使う側でいるなんてことはないと思います。フレームワークやライブラリを書かないとしても、プログラミングは抽象化の連続であり、いつかどこかで抽象化しなくてはいけないときが来ると思います。Scalaにおける抽象化は、型との闘いです。この辺りを駆使すると、使う側にとって嬉しいものが出来上がります。それとコードでの表現力がグッと高まります。この辺りも小さく始めていけば良いとは思いますが、いずれは遭遇するもの。このとき大切なのがコンパイラの気持ちになって考えるというものです。......自分で言っておいて何ですが、胡散臭いですね。言えることとして、コンパイラも魔法ではありません。とあるルールに沿っているわけです。そのルールが複雑でないとは言い切れませんが、複雑怪奇というほどではなく、人間が追うことは十分可能だと思います。さきほど挙げた型にまつわる概念ですが、これらは型推論があるからこそ実用的なものであると考えています。関数(メソッド)を呼ぶときに型を指定することってあまりないと思いますが、これはどこかに型の情報があって型推論が働くからです。やって働いているかですが、ちゃんと自分の頭で考えてあげると十分辿れます。何度も言いますが魔法じゃありません。conversionのように「え、そんなところまで頑張っちゃうの!?」的なやつもあるにはあります(感じ方には個人差があります)。まあ結局は「Scalaスケーラブルプログラミングを読もう!」となってくるのですが、この辺りは読んだだけでは掴み切れないものかもしれません。やっていくうちに案外染み付いてきます。雑でマッチョな考えですが、そういうものだと思います。今まで述べたものはあくまで個人の感想です。私がここ1年で感じたことばかりです。「うっわ意味分からん......」というのは何度も感じました。コンパイラと4時間格闘した末に妥協のコードを書いたことなんてザラです。向き合うことで「分かった!!!」と大声上げたくなることもありました。Scalaは難しいと思います。少なくとも私の頭でいきなり理解に及ぶことはありません。「これ考えた人は天才だな......。それを私が理解できるのか......」という卑屈なことは何度も思いました。いや、本当にライブラリなどを書けるようになるのか心配でしたからね!?それでも少しずつやっていったらなんとか出来ていったわけです。Scalaに詰められたおもしろい考え方、それを理解して次第に書けるようになってゆく喜び、その上で現実の問題にぶち当たっていく。そのあたりに私は楽しいと感じるみたいです。最後に何をおもしろいと捉えるかは人それぞれですが、知ることが好きな人であればScalaのそれは非常におもしろいと思います。興味のある方は是非ともご自身の手で触れてみてほしいです。それとですね、私が言っていますし、Re.Ra.Kuで使われているプログラミング言語とその選択理由でも触れられていますが、リラクではサーバサイドにScalaを採用しています。「もっと詳しい話聞かせて」だとか、「遊びに行ってみたいな〜」という方は是非お声掛けください。私宛には@takkkunにリプライいただければOKです。そんなこんなでScalaの楽しさを分かり合える方が増えればと密かに思っております。...こんにちは、神場です。今回はgitに関する記事です。