関数型プログラミング言語Haskell Part13
■ このスレッドは過去ログ倉庫に格納されています
0595デフォルトの名無しさん
2011/01/12(水) 19:25:27一方 Behavior の方は、たとえば Behavior 型の関数 sinB があったとして、
print sinB なんてやっても意味が無く(そもそも型が合わないのでコンパイル不可)、
Event と組み合わせて使います。
具体的には、e = [(1, ()), (2, ()), (3, ()), ...] のような Event 型の値があったしとして、
e2 = sinB `snapshot_` e のようにプログラムすれば e2 の値は次のような値になります。
e2 = [(1, sinB 1), (2, sinB 2), (3, sinB 3), ...]
つまり 1 秒毎に sinB をその秒数で計算する関数を要素として持つ Event が作られます。
で、これを先ほどのように adaptE e2 とすれば 1 秒毎に Behavior が評価されるわけです。
もちろんアプリ的には計算だけでは無意味なので、print 関数など組み合わせて表示します。
なので、更新ではなく、どちらかというとサンプリングですね。
Behavior や Event の概念自体は全く同じでも、実装方法や、
ライブラリを利用するプログラマの考え方は Flapjax とは違いますね。
■ このスレッドは過去ログ倉庫に格納されています