by shigemk2

当面は技術的なことしか書かない

Scala関数型デザイン&プログラミング読書会@渋谷 まとめ #functional_shibuya

前回

www.shigemk2.com

サンプルコードの実行

www.shigemk2.com

今回

fancs.connpass.com

予習

www.shigemk2.com

sbtログ

sbt.log

とりあえず、ワンファイルの実行環境を作ってみました

github.com

まとめ

  • 今回は正格と遅延の話
  • 関数型コードを記述するときに効率性を回復させるための手法(existsなどを見ても分かるように遅延評価でメモリの消費を抑えている)
  • 非正格性は、式の記述をその評価の方法やタイミングから切り離すことで、モジュール性を向上させることを目的
  • 同じ記述を複数のコンテキストで再利用することが可能となり、式の異なる部分を評価することで異なる結果が得られるようになる
  • スマートコンストラクタ (追加の不変条件を満たすデータ型、あるいはパターンマッチングに使用される「本物」のコンストラクタとはシグネチャが少し異なるデータ型を生成する関数 ここではcons)
  • サンクの処理が実行されるのは、サンクの強制的な評価が最初に行われたときだけ
  • 遅延を利用することで、式の記述をその式の評価から切り離すことが可能

f:id:shigemk2:20150616231801p:plain

Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)

Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)