タグ

frpに関するjoan9のブックマーク (13)

  • Reactはリアクティブプログラミングなのか? - uehaj's blog

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

    Reactはリアクティブプログラミングなのか? - uehaj's blog
  • Reactive Porn - steps to phantasien

    Rebuild.fm に出させてもらいました。ありがたいことです。 さっそく録音を聞き直す。自分の声を聞くのは辛い・・・のはさておき、 リアクティブプログラミングの話は我ながら主張がよくわからない。 反省のため何が言いたかったのかを考え直したい。 たぶん趣旨は二つあった: A. RxJava や RxAndroid はなかなかいいやつだ。 B. リアクティブプログラミングは一つのはっきりした概念ではない。 A については試してもらえばわかるはず。ReactiveX のサイトからぽつぽつ資料を読めば済む。ここでは B を補足してみる。 X 指向は Y みたいなもの リアクティブプログラミングとは何だろう。どうもつかみどころがない。私は腑に落ちるまでけっこう時間がかかった。 このわかりにくさには大きく二つ理由があると思う。一つはプログラミングの概念をコードなしに説明する一般的な難しさ。オブジェ

  • Haskell 的視点から見た Elm - Qiita

    前書き Egison のドキュメントをいろいろ眺めていたところ The 6 Programming Languages Interesting to Try を読んで Elm という言語を知り、これは面白いと思い Egison そっちのけで Elm をダウンロードしていろいろ遊んでみました。そのうちにいろいろと思うところがあったので Elm Advent Calendar に乗じて徒然なるままに書いてみることにしました。 もし Elm のことは全然知らないというならば、まずは Examples で遊んでみてください。Web 上で Elm を実行して遊べます。 純粋関数型の世界から JavaScript の世界へ Elm は Haskell に非常に良く似た文法を持っています。Haskell と同様、副作用を暗黙に生じさせない「純粋関数型」のアプローチを取っていて、コンパイラは厳密な静的型付

    Haskell 的視点から見た Elm - Qiita
  • FRPとVirtual DOM、状態について。 - Qiita

    今回は、Elmを通して、FRPに対する個人的な理解、そしてVirtual DOMがFRPに合っているということを述べていきます。 関数プログラミングはどのように「状態」を扱うのか? 「Functional Reactive Programming」とあるように、FRPは関数プログラミングのパラダイムの技法だと思います。なので、関数プログラミングについてまず、「状態」について考えてみたいと思います。 状態とは何か? まず、状態とは何でしょうか? CTMCPによると、 状態(state)とは、必要とされる計算の途中結果を含む、値の時系列である とあります。関数プログラミングのような宣言的なプログラミングは、そしてこの書籍では暗黙的状態を扱い、オブジェクト指向のような命令的なプログラミングは明示的状態を扱うと述べています。 値と、オブジェクトと、「状態」 関数プログラミングは、「値」を扱います。

    FRPとVirtual DOM、状態について。 - Qiita
  • Elmというミニマムでフレームワークにもなる関数型altJS言語を触ってみよう!!! - Qiita

    Elm触ってみると面白くてハマりまして、この記事もそんな一人による紹介記事になります。 この記事が一番ストック数が多いので、v0.17になったことに合わせて書き直しました。(2016年5月18日) Elmとは ・コンパイルすると、HtmlCSSJavascriptになる。 Elmとは、コンパイルするとHTMLCSSJavascriptを生成するプログラミング言語です。 ・Elmアーキテクチャで書ける。 v0.17から正式にElmはフレームワークを兼ね備えた言語になりました。 後述するElmアーキテクチャというパラダイムでブラウザアプリケーションを書きます。 ・Elmはシンプルで小さな関数型の言語です。 ElmはHaskellやいろんな関数型言語を参考にして、とても小さく強力な構文を持っています。 ・学習が始めやすいです。 かなり学習のしやすさや学習曲線を大事にしているのでちょっと見

    Elmというミニマムでフレームワークにもなる関数型altJS言語を触ってみよう!!! - Qiita
    joan9
    joan9 2014/12/17
  • Elmとはどんな言語か?その7つの特徴【Elmアドベントカレンダー2014 1日目】 - None is None is None

    これはElm Advent Calendar 2014の1日目です。 Elmはクライアントサイド向けの関数型言語です。一体どんな言語なのでしょうか? 1. HTML/CSS/JSにコンパイルされる ElmHTML/CSS/JSにコンパイルして使用します。 この辺はJavaScriptにコンパイルされるAltJSに似ています。 AltJS同様、Elmも特別なランタイムライブラリは不要です。 ただし、Elmは1つのソースでHTML/CSS/JSをすべてまかなえるのが特徴です。 2. 独自の抽象化レイヤーを提供している 代表的なAltJSであるCoffeeScriptは"It's just JavaScript"をモットーにしています。すなわち、文法を改良するのみで、「中身」はJavaScript以上でも以下でもありません。 一方、Elmでは直接JSやCSSを操作することはできません。 基

  • Arrow化pipeはFRPの夢を見るか? - Qiita

    askP = P.constructT P.kleisli0 $ do lift $ putStrLn "情報を入力して下さい" forever $ do lbl <- P.await lift $ putStr (lbl ++ ": ") ct <- lift $ getLine P.yield (lbl, ct) registerP = do r <- runKleisli (P.run askP) ["Zip code", "Address", "Name"] print r ほとんど間違い探しのレベルですね。真似して作ったので仕方ない。machinecell側にだけkleisliという見慣れない名前が見えますが、これは型合わせだと思って無視して頂いてOKです。 上のコードは、ちょっと変則的ですが、pipe系の汎用性をデモするために「データの中間加工時に副作用を起こす処理」を実装して

    Arrow化pipeはFRPの夢を見るか? - Qiita
  • Arrow化pipeはFRPの夢を見るか?(GUI編) - Qiita

    バックナンバー Arrow化pipeはFRPの夢を見るか? 記事も引き続き、Arrow記法対応のpipe系(ないしはIteratee系)自作ライブラリmachinecellの紹介です。 machinecell: Arrow based stream transducers 今回はインパクト重視のデモとして、小さなGUIプログラムを披露します。 その前にイントロとして、なぜIteratee系のライブラリをArrow化したか、というモチベーションの部分について、前回の記事より少し突っ込んで触れてみようと思います。 イントロ:Arrow化のモチベーション Iteratee系ライブラリとは、データを読み、書き、副作用を実行する小さな部品を「あたかもUnixのパイプのごとく」連ねて、一連の処理を行う事ができる「機能」を提供するものでした。 ArrowとはCategoryの拡張で、「あたかもパイプの

    Arrow化pipeはFRPの夢を見るか?(GUI編) - Qiita
  • (* programming -> girl -> ? *) | 業務アプリ実装にFRP使ってみた

    Bacon.jsという、Functional Reactive Programming のFrameworkを使ったJava Scriptライブラリを使って業務アプリを書いてみました。関数型の考え方をふんだんに使いつつも、GUIなどのユーザ入力を伴うような処理に柔軟に対応している、マイナーながら優れたライブラリです。 実際にBacon.jsを使って実装してみて、何が良かったかなってところを、 ちょっと素人なりに色々と考えてみました。 1. 出てくるワードが直感的であるBaconでは、EventStream, Propertyなどといった独自のワードがいくつか出てきます。 ライブラリを読んで色々と使うのは大変だなあと個人的にはよく思いますが、Baconに関しては、新しい概念を取り入れているのにも関わらず、非常に直感的且つイメージがつきやすいワードを選択しているので、頭の中に構造を描きやすい仕

    (* programming -> girl -> ? *) | 業務アプリ実装にFRP使ってみた
  • Start FRP

    13. JavaScript での実装例 - イベント駆動 function onChange() { var a = Number($("#val1").val()); var b = Number($("#val2").val()); var c = a + b; $("#val3").text(c); } $("#val1").change(onChange); $("#val2").change(onChange);

    Start FRP
  • FRPの話 - maoeのブログ

    Haskell Advent Calender 2012で久々にブログを書くということで、ついでにはてなダイアリーからはてなブログに移行してみた。記事やコメントはもちろんのこと、はてブも移行でき、なおかつundoもできるという素晴らしい仕様なので、安心して移行することができた。 さて、今回はFunctional Reactive Programming(FRP)の話。FRPとは、時間やシステム外部からの入力に対して応答するプログラムを関数的に表現する方法とでも言えばよいだろうか。 FRPというとまだ定番の実装もなく、実用にはほど遠いと考える人もいるかもしれない。実際、FRPの実装に関してはまだいろいろ研究・改良の余地があるとは思うものの、以前のように簡単にメモリリークするようなことも無く、最近では試してなるほど便利そうと思える段階にまでは洗練されてきていると思う。 FRPが登場してからの1

    FRPの話 - maoeのブログ
  • Elm - delightful language for reliable web applications

    A delightful language with friendly error messages, great performance, small assets, and no runtime exceptions.

    joan9
    joan9 2013/02/26
  • Functional Reactive Programming (FRP)

    Functional Reactive Programming (FRP) with reactive-banana-0.6.0.0 Heinrich Apfelmus Translated by Akira Takahashi (faithandbrave@gmail.com) Functional Reactive Programming (FRP) with reactive-banana-0.6.0.0 Heinrich Apfelmus Translated by Akira Takahashi (faithandbrave@gmail.com) Why? • GUI • アニメーション • デジタルミュージック • ロボット Functional Ractive Programmingは、命令的プログラムを実 装するエレガントな手法である How? ファーストクラスの値として

  • 1