関数型がわかってきた4日目
やったこと
今日は知識系が多かったです。
今日の進歩
- 関数型を理解!!!!!!!!!!!!!!!!!!!!(おそい)
- しかもそれ数学の考え方とまったく一緒じゃん(初日にscalaは大学で生まれた言語だからそういう節あるって教えてくれてる)
- いろいろ自由自在になるよね?数学のように、と気づく
- だから型に厳しいのか、と腑に落ちる
基本構文の文法が頭に入らないなぁと思っていたら、
ひとつ下のレイヤーの言語の特徴みたいなのをちゃんと理解してなかったからだと気付きました。
あ〜〜〜〜〜〜〜〜〜〜〜〜、
ここまできたらもうなんでもできる気がするんです。
わからなかったときに、どこを調べればいいかとか、解決の仕方が見えてきた。
ここまでがつらかったよーう。
今はもっと知りたいって思う、はぁ、良かった、挫折しなくてwww
ドワンゴさんの研修資料
わかりやすかったです。
一般系を書いてくれてて、初心者が頭を整理しながら進めていくのにちょうどいいです。
https://dwango.github.io/scala_text/
ここからは自分でコードを書きながらわからないことがあったら師匠にきくという形をとっていきました。
(なんとここまでは師匠がつきっきりで見てくださっていました、だからわたしが頭が蒸発している姿とかも見られていました)
この研修資料の
- 制御構文
- クラス
- オブジェクト
をやって頭を整理し、
- 型パラメータ
- 関数
の部分を読み解きながらすすめました。
このあたりで「関数」というものに慣れてきました。
何か値を関数にいれて、なんらかの操作をし、変化した値が変数として返ってくる。
その本質を考え方の土台にすれば、問題の解き方も変わりました。
やっぱり、値を変化させたいってなると「代入」しようとしちゃうんですよね、その概念はscalaでは使えなかったんですね〜、そりゃ頭爆発するわ。
あとは、正しく値を返せるかどうかなのかな?
例えば、printlnするだけなら、
出力の型を:UNIT(何もかえってこない)にしていい感じにメソッド適用させまくればいける、みたいな感覚があるんですが。笑(まだ発言のレベルが低すぎる)
これ(出力したい値)を返すにはこのコレクションで操作できるようにしてこのメソッド適用されて、、、、って逆算していく考え方で合ってるのかな?
ここはもっと場数を踏んでいきたいな。