2015年10月15日

日記

プログラミングで入出力処理は副作用の代表例として上げられるけど、ファイルの全内容の読み込みって副作用なのかな? Java で言うと InputStream や Reader にとっては read などは状態を変えるけど、File や Path にとっては InputStream, Reader を表に出さなければ副作用な感じがしないのだが。 Scala で言うと、ファイルの全内容を読み込むメソッドを定義するとき、() を付けて定義すべきか付けずに定義すべきか。

ちょいと GDK (Groovy JDK) で定義されている I/O 関連のメソッドScala で書いて遊んでるんだけど、Scala の暗黙の型変換使うと java.io.File に対するメソッドjava.nio.file.Path に対するメソッドの多くが共通の処理として抽象化して別トレイトに定義できてラク。 それぞれに定義しないといけないメソッドは InputStream/OutputStrea, Reader/Writer のインスタンス生成がほぼ全て。 (最近 Groovy はメタなコードを書いてないけど) Groovy で既存クラスにメソッド付け加えようとしたら少々面倒くさい設定しないといけなかった気がする。 カテゴリみたいなので拡張できるようになってからある程度ラクになったのかも知れないが。

タバコの吸い殻とかゴミを排水溝の鉄格子のところに捨てる奴いるけど、アレってなんなん? 自分の視界から消えたらものが消滅したとでも思ってるんかよ。

Scalaスケーラブルプログラミング第2版

Scalaスケーラブルプログラミング第2版


NHK 世界のニュース ザッピング(翌日)

  • 【米 ABC】 2ドルの写真が500万ドルに?
  • 【仏 F2】 ここまでやるの? 自治体の節約術
  • 【仏 F2】 高速道路が“太陽光発電道路”に
  • 【香港 ATV】 僧が偽装結婚と横領罪で逮捕
  • 【ロシア TV】 ロシア軍さらに40のIS拠点を空隙
  • 【韓国 KBS】 ロッテお家騒動 兄が弟を理事長から解任

ツイート (ツイート数 35)