Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Reactive Programming     たけうち ひでゆき
Imperative Programmingb=1c=2a=b+cb = 10print(a) // 3が出力• aは代入された時点の値を保持する
Reactive Programmingb=1c=2a=b+cb = 10print(a) // 12が出力• 右辺の値が変わると左辺に伝播される   – いつ伝播されるかは実装による
何が嬉しいか• 出力を簡潔に定義できる – myLabel.text = 10 + 2 * time    • timeが変化する毎にmyLabelのテキストが変化する – myLabel.text = “yes” . keyDown Spac...
どういう所で使われているか•   Spread Sheet (Excel)•   Robotics•   Simulation•   User Interface• Flex• JavaFX (ScalaFX)
Excel
Flex<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    xmlns:s="library://ns...
少し突っ込んだ話し• データフローのグラフが作られる(こともある) – c=a+b – e=c*d                     a             c       e             b             d
まとめ• Wicketのプログラミングでもデータの流れをプログラム  するということを意識しよう – Modelはデータの流れを記述するための機構
Nächste SlideShare
Wird geladen in …5
×

Reactive Programming

  • Als Erste(r) kommentieren

Reactive Programming

  1. 1. Reactive Programming たけうち ひでゆき
  2. 2. Imperative Programmingb=1c=2a=b+cb = 10print(a) // 3が出力• aは代入された時点の値を保持する
  3. 3. Reactive Programmingb=1c=2a=b+cb = 10print(a) // 12が出力• 右辺の値が変わると左辺に伝播される – いつ伝播されるかは実装による
  4. 4. 何が嬉しいか• 出力を簡潔に定義できる – myLabel.text = 10 + 2 * time • timeが変化する毎にmyLabelのテキストが変化する – myLabel.text = “yes” . keyDown Space <|> “no” • スペースキーを押しているときは”yes”を表示、それ以外は”no”を表 示• 状態・イベントを意識しなくてすむ – 左辺とはなにかと右辺で定義する
  5. 5. どういう所で使われているか• Spread Sheet (Excel)• Robotics• Simulation• User Interface• Flex• JavaFX (ScalaFX)
  6. 6. Excel
  7. 7. Flex<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" width="400" height="90"> <s:layout> <s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"/> </s:layout> <s:TextInput id="lhs" width="100" fontSize="48"/> <s:Label fontSize="48" text="+"/> <s:TextInput id="rhs" width="100" fontSize="48"/> <s:Label fontSize="48" text="="/> <s:Label fontSize="48" text="{parseInt(lhs.text) + parseInt(rhs.text)}"/></s:Application>
  8. 8. 少し突っ込んだ話し• データフローのグラフが作られる(こともある) – c=a+b – e=c*d a c e b d
  9. 9. まとめ• Wicketのプログラミングでもデータの流れをプログラム するということを意識しよう – Modelはデータの流れを記述するための機構

×