「Scalaスケーラブルプログラミング」2章

所感

  • 納得した点
    • 関数定義で,引数は型が必須,返り値は任意というのは納得. 関数間の不整合は必ずチェック,関数内での不整合は任意.
    • def f(X) = {Y}の関数定義と(X) => Yの関数定義,後者はその場限り なので型を省略してもよいが,前者はだめ.
    • 関数型のスタイル,というところは,反復で並列化するときに 処理がvarを通して依存しているのではなく,全部独立になっている からよいのだという意味で納得した.
  • 補足
    • Scalaインタープリタではなくjupyter-scalaで試してみている
    • valは上書き不能,varは上書き可能
    • defで定義した関数オブジェクトはvalになっており,変更不可.
  • 分からなかった点
    • valとvarがわざわざ分かれているが,どこでvalを使うべきなのかを理解しないと varばかり使ってしまいそうだがそれは間違いなはず.
    • jupyter-scalaのindentがScalaで推奨されているものと異なって しまっているのでなんとかしたい