These are chat archives for scalajp/functional

15th
Feb 2015
eugene yokota
@eed3si9n
Feb 15 2015 07:36
functional かは不明ですが、ある関数とか値をコードに表記したときに、それが実際にどの段階で評価されるかって言葉を execution semantics って呼んでるんですが、それがちゃんとした用語なのかちょっと不明になってる
Haskell だと副作用が無いから表示的意味論 (denotational semantics) だけで全部表せる、みたいなページがあるので、ぎりぎり functional - http://ja.wikibooks.org/wiki/Haskell/Denotational_semantics
strict か non-strict だと評価戦略っていう言葉がありますが
単語が難しいです...
eugene yokota
@eed3si9n
Feb 15 2015 07:47

具体的には sbt のタスク内で

foo := {
  startServer.value
  stopServer.value
}

って書いたときの「動き」を表す言葉が欲しい

これは startServer.value と stopServer.value が並行実行されます。
eugene yokota
@eed3si9n
Feb 15 2015 07:50

そのブログ記事書いた人は

本稿では sbt 0.13 における実行意味論 (execution semantics) とタスクの逐次化 (task sequencing) についてみていこうと思う。

とか言ってますが

kenji yoshida
@xuwei-k
Feb 15 2015 07:50
そのあたりを逐次実行する機能が追加されるコードが生成されてるのを横目で見ていた
eugene yokota
@eed3si9n
Feb 15 2015 07:52
ビルドツールなんだから副作用ありまくりで当たり前、だけど色々 functional、使い勝手は imperative っていう感じなので、解説が必要<今ここ
で、考えたのがペトリネットって並行計算の解説として絵で見えるから分かりやすくないか? ってことで英語版だけちょっと前に書いてみました - http://www.scala-sbt.org/0.13/tutorial/Custom-Settings.html#Execution+semantics+of+tasks
program semantics ではあるんだけど、「関数呼び出しが評価されるタイミング」を表す言葉としては広すぎると思います
eugene yokota
@eed3si9n
Feb 15 2015 07:57
僕的には同じく副作用アリアリのデータベース系の用語がしっくりくる