FRP(FunctionalReactiveProgramming)というスタイルがある.入力から出力を得る(あらゆる)プログラムを関数風に表現する手法らしい.遅延ストリームは純粋関数型言語にぴったりだと感じるが,あまり流行っていないような気がする. HaskellではFRPのライブラリが複数あるそうだが,よく分からないのでボトムアップに自作してみよう.ゲームといえば入出力と内部状態の塊,楽しそうなのでCUIで動くテトリスを題材とする. 基本 FRPにはEventとBehaviorという概念がある. Eventは,時間と値の組のリストで,離散的なイベントを表す.例えば,キーが押されたというイベント,画面が更新されたというイベントなど. Behaviorは時間の関数で,連続的な値を表す.例えば,経過時間や現在のスコアなど. type Time = Double newtype Event
YampaでFunctionalReactiveな認知行動療法ボットを書く これはHaskell Advent Calendar その3、13日目の記事です。前日の記事はmatsubara0507さん Haskell Backpack覚え書きでした。 はじめに FunctionalReactiveProgramming(FRP)を使うと、時間軸に沿って入出力の関係が変化するシステムの挙動を、シンボリックに記述し、組み合わせることができます。ロボット、ゲーム、GUIなどのプロラミングに便利です。Yampaは、Arrowの記法をフル活用するFRPのライブラリです。 認知行動療法(Cognitive Behaviour Therapy, CBT)は、医学的に確立された心理療法の一種です。ここでは、CBTの自己対話スキームを提供するボットを、Yampaを使って書いてみます。 目標 時間と入力

FRP(FunctionalReactiveProgramming)は、リアクティブプログラミングと関数型プログラミングの性質を持つプログラミングパラダイムである。FRPは古典的FRPと矢矧のFRPに大別される。 古典的FRP 古典的(Classical)FRPは、非連続的な値の列Eventと、常に何らかの値を取るBehaviourの二種類の構造を導入したものである。 代表的な実装としてreactive-banana、euphoria、reflexなどが挙げられる。 Haskellにおいては、EventはIOを通じて非同期的に生成できる設計が多い。Eventはマップやフィルタリングができ、モノイドとして合成することもできる。なお、GenはFRPの構造を扱うのに要求されるモナドで、実装の都合上しばしば必要となる。Behaviourは現在の値を取り出せる他、HaskellならApplica

� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # $ % & ' ( ! ) " * " + , - ! " ' . � � / 0 � 1 2 � � � 3 � � 4 � � � � � 5 6 � � � 7 � � � � 8 � � � � 9 � � � � � � : $ ; % - < ; = $ > & ? $ % @ - @ = ; A B C D E F G D H I J K L M N O P Q R S O T U V W T P Q R X W Y O R Z T Q R S O [ R \ T P S U U W P Q R S O S ] ^ T Q
なぜRxJava? RxJavaは様々な特性を併せ持ったライブラリですが、簡単にまとめると以下のような機能に分類されます。 List処理の抽象化・ストリーム化 Optional Future/Promise Data Binding Event BusAndroid開発でRxJavaをチームに導入した話Java 8ではStreamAPIやOptionalが導入されていますが、Androidや業務要件などそのAPIを使えない環境も存在します。 また、非同期や並列などそもそもJavaで扱いにくい処理を、統一されたインターフェイスで簡潔に記述できるなどのメリットも多く、その基本的な機能を試してみたので紹介します。 なお、ここに記載する内容はRxJavaの使い方が中心で、RxJava自体の概念やFRPなどについては、他にも多くの方々紹介してくださっていますので、そちらをご覧いただければと思い

はじめにReactiveSwiftの基本コンポーネントの、基本的な使い方について記述します。 (そもそもReactiveSwiftとは何か?、という話は補足参照) 対象読者 FunctionalReactiveProgramming(以下FRP)のコンセプトは把握した (コンセプトについては、【翻訳】あなたが求めていたリアクティブプログラミング入門を読むことをオススメします。) Signal/SignalProducer などを、どう生成・使用できるか分からない playgroundやソースを全部読むのは多すぎて、実際に使う基礎を知りたいUI bindingではなく、Observableの基礎を知りたい 環境ReactiveSwift1.0.0ReactiveSwiftのリポジトリ中に、Sandboxのplaygroundがあるので、そこに書いて試してみるのがよいでしょう。 基

Aug 23, 2016オタクなのでRxSwiftの話になるとつい早口にアレコレ喋りまくってしまうのですが、今回はそういった気持ちをそっと胸にしまって、RxSwiftを導入するとアプリ開発にどういう変化が起こるのか、なるべく多くの方に伝わるように心がけて話しました。 スライド: http://blog.ishkawa.org/talks/2016-08-20-iosdc/ ビデオ: https://abemafresh.tv/tech-conference/32381 (1:00:00~) 3行で書くと以下の通りです。 RxSwiftはイベントストリームをObservableで抽象化するライブラリ 大抵のイベント処理はObservableからObserverへの接続で実装できる イベントストリームの依存関係はオペレーターから読み取れる その他、以下の3つについても話そうと思っていましたが

ではなぜネットフリックスがマイクロソフト発祥のテクノロジを利用するようになったのだろうか。実は、RxJavaの初期の開発者であるJafar Husain氏は、もともとマイクロソフトに勤めていて、世界で最初にReactive Extensionsを紹介した人物でもあるのだ。その後にネットフリックスに転職し、RxJavaの誕生に深く関わることになる。 一方でオリジナルのRx.NETの作者であるErik Meijer氏もまた、マイクロソフトを辞めた後に、HackやDartなどの新興言語の支援に関わる他、Principles ofReactiveProgrammingといった学習コースをScalaの作者であるMartin Odersky氏らと開講するなど、言語の枠を超えて活躍している。 Rxとマイクロソフトのオープンソース 昨今のマイクロソフトのオープンソースへの傾倒を疑うものはもはやいないだ
Want to learn about functionalreactiveprogramming (FRP) on iOS? Wecreated thisguide to help everyone, from beginners to seasoned experts, learn how to leverage the power of FRP on iOS. In thisguide, you’ll learn: Why you’d want to want to use FRP What FRP is How far can you cango with the power of FRP How to use FRP Who to follow to learn more about FRP Get moreguides, videos, & tutorials W
この記事は ACCESS Advent Calendar 2015 19日目の記事です。 ACCESSの @asukamirai です。 FRP(Functionalreactiveprogramming)をサーバのロジックとして使うのはどうなのだろう、ということで試しに感覚を掴むためにやってみました。 使用したFRPのライブラリは、ICFP2015に登場した論文のFRPNow。言語はHaskellです。 確認環境など stack 0.1.10.1 lts-3.18 frpnow-0.18 OS:Windows7 64bit 動機 FRPというと、なんとなくGUI的なものを扱うようなイメージが強かったのですが、その一方で、データフローでプログラミングを行うというのは、ストリーミング処理系のライブラリとも共通する部分がありそうだと思っていました。 先月行われた関数型ストリーム処理勉強会

Reactとは 設計をとりもどすReactでやってみるElm-HtmlとReactの対応ReactはFRPか?ReactはFPか? FPとOOPの真の関係 まとめ 追記ReactとはReactは、Facebookが開発した、JSのUIフームワークもしくはライブラリです。Reactが提供する中核機能は以下です。 イミュータブルなUIビルダー Virtual DOMによる効率的更新 上記に付随するイベントハンドラ群を編成していくための方法論React単体ではコールバックの組合せで、Fluxの一部として使用するとオブザーバーパターンで実現 効用は、再利用性と保守性・可読性向上です。特に、Reactで作成した画面部品のコンポーザビリティが高く、細粒度のUI部品利用の発展充実が期待されます。作りは通常のJSクラスライブラリであり、覚えたりすることは多くありません。 設計をとりもどす R

var app = require('app'); var BrowserWindow = require('browser-window'); var mainWindow = null; app.on('window-all-closed', function() { app.quit(); }); app.on('ready', function() { mainWindow = new BrowserWindow({width: 800, height: 600}); mainWindow.loadUrl('file://' + __dirname + '/app.html'); mainWindow.on('closed', function() { mainWindow = null; }); }); 上記のように基本的にはメインプロセスはjsで あとはレンダラープロセスで描画

Conal Elliott proposed functionalreactiveprogramming twenty years ago with a cleardenotational semantics. Over time the idea gained popularity but the original conception becameblurred. In this video Conal explains FRP’s original formulation andits benefits. Slides are available here. Summary FRP is is receiving more interest now but has become misunderstood Thenotion of FRP was very precise

FunctionalReactiveProgramming (FRP) is becoming an increasingly common way to structure event- driven code, but the term "FRP" actually refers to a large body of increasingly diverse work. This talk will quickly cover the basics of FRP, and thengo into a couple different formulations of FRP that people are beginning to use. We will explore how these formulations fit together historically and th

HaskellでFRPをするためのライブラリ"Sodium"を少し触ってみました。 sodium: SodiumReactiveProgramming (FRP) System | Hackage Sodiumは、C#,C++,Java,Scala, Haskellに対応していて、各言語間で類似したインターフェースを持つように設計されたFRPライブラリです。 FRPの実装方式は数種類あって、主にpull based、push basedが主流の2タイプのようなのですが、Sodiumはpush basedで実装されています。(push basedのほうが後発?) EventとBehavior FRPの基本であるEventとBehaviorについて軽く学んでおきましょう。 Eventとは時間と値が対になったデータのストリームです。例えば、マウスのクリックや、キーボードの入力、チャット
FunctionalReactiveProgramming refers to a declarative way to write eventful program in functional languages like Haskell. While the concepts behind FRP are straightforward to grasp, the actual implementations are not. Libraries like sodium,reactive-banana, elerea, and yampa share one thing in common: large code bases that are not easily understood by beginners. In thisblog post, I will develop
概要 『Observable は単なる非同期データストリームにおけるモナドのインスタンスだよ。何か問題でも?』 まともな概要 つまり、Reactive Extensions (Rx) って何だ? ということでウェブをガサゴソと漁っていたところ、オンライン講義サービス Coursera の Principles ofReactiveProgramming に行き当たった。この講座では、Rx の主要開発者の一人である「双対おじさん」こと Erik Meijer 氏自らが一部の章を担当し、Rx の理論的側面を講義している。 この講座の大きな特徴は、Rx を(命令型プログラミングではなく)関数型プログラミング (FP) の側から解き明かしていくことにある。 こう書くと奇をてらっているように見えるかもしれないが、実際には Rx は FRP (FunctionalReactive Program

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く