[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 06/18 14:14 / Filesize : 205 KB / Number-of Response : 798
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型プログラミング言語Haskell Part18



185 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 01:23:27.55 ]
Reactiveはもうメンテされてなくて、今のGHCじゃコンパイルできないから俺はノータッチだけど、
Yampaは、Reactiveなんかの古典FRPを写像変換子のアローとして再構築したライブラリだから、基本的なところの考え方に違いはないはず。

というか、生成、消滅、衝突とかをどう考えたらいいかわからないってのは、FRPの基本的な考えを理解してないからじゃないか?

時間に応じて離散的に変化する値を[(Time, a)]という無限リストだと捉えるのがイベント
時間に応じて連続的に変化する値をTime -> aという型の連続関数だと捉えるのがビヘイビア

こいつらに対して、
定刻tを過ぎたらイベントを発する atTime :: Time -> Event a
ビヘイビアを積分する integral :: Behavior a -> Behavior a
イベントが発生したタイミングで、ビヘイビアの値を補足した新しいイベント作る snapshot :: Behavior a -> Event b -> Event (a, b)

みたいなコンビネータを使ってごにょごにょするのがFRP。

例えば、キャラの移動速度の変化をビヘイビアとして定義して、integralで積分すれば、それが各時刻におけるキャラの位置のビヘイビアになる。
衝突、生成、消滅、キャラのステータス状態の変化、キー入力なんかは、イベントとして考えられるし、
毎フレームの更新自体もイベントとして考えられて、各キャラの更新は

map (flip snapshot updateEvent) charactor

みたいに書けば、それが各フレームのキャラの状態変化を表すイベントになる。
こんな感じで、イベントとビヘイビアを組み合わせて、より複雑なイベントやビヘイビアを作ってく。

とりあえず、Haskell wikiからたどれるリンクを片っ端から読みあさるのが良いと思う。
www.haskell.org/haskellwiki/Functional_Reactive_Programming
www.haskell.org/haskellwiki/Reactive

本だとSOEが有名。
・The Haskell School of Expression: Learning Functional Programming Through Multimedia
 ttp://www.amazon.co.jp/exec/obidos/ASIN/0521644089/






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef