タグ

frpに関するntaooのブックマーク (12)

  • Why I cannot say FRP but I just did

    The story of a useful acronym with overprotective parents Functional Reactive Programming (FRP) is an increasingly popular acronym. Both reactive and functional programming are genuinely useful terms conveying ideas without formal rigor. FRP, however, is a radically strict term for a programming technique mathematically defined about 20 years ago. People loosely use FRP to refer to reactive progra

    Why I cannot say FRP but I just did
    ntaoo
    ntaoo 2016/01/28
  • 関数型プログラマのための Rx 入門(前編) - Okapies' Archive

    概要 『Observable は単なる非同期データストリームにおけるモナドのインスタンスだよ。何か問題でも?』 まともな概要 つまり、Reactive Extensions (Rx) って何だ? ということでウェブをガサゴソと漁っていたところ、オンライン講義サービス Coursera の Principles of Reactive Programming に行き当たった。この講座では、Rx の主要開発者の一人である「双対おじさん」こと Erik Meijer 氏自らが一部の章を担当し、Rx の理論的側面を講義している。 この講座の大きな特徴は、Rx を(命令型プログラミングではなく)関数型プログラミング (FP) の側から解き明かしていくことにある。 こう書くと奇をてらっているように見えるかもしれないが、実際には Rx は FRP (Functional Reactive Program

    関数型プログラマのための Rx 入門(前編) - Okapies' Archive
    ntaoo
    ntaoo 2015/12/08
  • FRPとVirtual DOM、状態について。 - Qiita

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

    FRPとVirtual DOM、状態について。 - Qiita
    ntaoo
    ntaoo 2015/06/10
  • オブジェクト指向vs関数型プログラミングの壮絶な宗教戦争っていつしてたの……? - Qiita

    なんか荒れてますが、私も一言いいたいです!! オブジェクト指向がそうであるように、関数型も銀の弾丸ではありません!!! - 参照透過性はすばらしい この記事をぼやーんと眺めてました。 高精度煽り除去フィルタを通して読むと、関数型のアプローチがよい、と言う話ですね。 実際コードを書いてると、自分の書いたコードに関するバグは、体感、8割くらいが副作用に起因するものです。 副作用があると、呼び出し元が考慮すべきパターンが増えます。Mの状態を持つオブジェクトと、Nの状態を持つオブジェクトをつなぐと、MxNのパターンになるわけです。これはつなぐたびに積算されるため、爆発します。 副作用が無い場合、状態数は1なわけです。1x1は?1です!!よって、状態の組み合わせ爆発は起きません。考慮すべきは、入力値のパターンだけで十分なわけです。 他にもいろいろメリットが!! すばらしき参照透過性!!関数世界最高で

    オブジェクト指向vs関数型プログラミングの壮絶な宗教戦争っていつしてたの……? - Qiita
  • モダンWebシステム開発

    Qcon Tokyo2015 での発表スライド

    モダンWebシステム開発
  • 随筆: 純粋さによって俺たちが失ふもの - Qiita

    関数型プログラミングとオブジェクト指向の抜き差しならない関係について整理して考えるを眺めてゐて思ったことをつらつらと。常体と敬体が混ざってるやうな酷い駄文ですよ。 あ、題名に「失ふもの」とか書いたけどそもそも質的に失ふものなんてないです (我ながら酷い釣りだ)。どうせどの言語もチューリング完全である限り出来ることは変はらない。言語によって違ふのは、同じ問題を解くためのプログラムの書きやすさだけ。でも、その書きやすさが「現実的にプログラムとして書けるかどうか」という問題に繋がるから、みんな言語設計やパラダイムについて語るんですよね。 副作用と IO モナドの話 純粋関数型言語マンセーの人はその純粋さ (参照透過性が保証され、副作用のある演算ができないこと) こそが利点であるとことさら強調します。それは、全てのものを抽象的概念としてモデル化する数学・論理学の問題を解くには確かに適してゐませう

    随筆: 純粋さによって俺たちが失ふもの - Qiita
  • 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary

    original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいなかった。ある関数を理解するのに、ライブラリのドキュメントは役に立たないことがある。 これを見て欲しい。 Rx.Observable.prototype.flatMapLatest(selector,

    【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary
    ntaoo
    ntaoo 2014/08/13
  • (* programming -> girl -> ? *) | 業務アプリ実装にFRP使ってみた

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

    (* programming -> girl -> ? *) | 業務アプリ実装にFRP使ってみた
    ntaoo
    ntaoo 2014/07/15
  • Bacon

    Loading <-Prev | Next -> Slide X of Y

  • VOC.js作った。 視覚と見た目に基づいた非同期コミュニケーションができるよ - 標高+1m

    昨日の記事で書いたVOC (Vision Oriented Communication) の実装を支援するライブラリを作った。 https://github.com/ympbyc/VOC READMEを英語で書いたのでここに日語版を書いとく。 VOCのコンセプト オブジェクト指向やアクターはpushベースだけど、実世界のコミュニケーションの多くはpullベースだ。 僕らはレシーバを指定したメッセージを送らない。 僕らは自分の見た目(e.g. 表情)や自分の周りの状態(e.g. 声)を変える能力を持っている。 僕らは自分の周りの景色を見て、情報を引き出して、それに基づいて行動する。 僕らはそれぞれバラバラに勝手に非同期に行動している 僕らは赤信号が見えたらブレーキを踏むわけで、赤信号が僕らのbrakeメソッドを呼んでくれるわけじゃない。 実装 VOC.Visual(state)は見た目を作

    VOC.js作った。 視覚と見た目に基づいた非同期コミュニケーションができるよ - 標高+1m
    ntaoo
    ntaoo 2014/06/14
    おもろー
  • 関数リアクティブプログラミングの実践

    リアクティブプログラミングって何? 時刻によって変化する値を使って計算する x = mouse_position.x y = mouse_position.y sum = x + y printf("(%d, %d); sum=%d", x, y, sum) 入力が変わるたびに再計算 用途: UI、シミュレーションなど Haskell/ML上のリアクティブプログラミング Behavior a: 時刻によって変化する値(中身a型) Event a: 繰り返し発生し得るイベント(a型の値が付属) mousePosition :: Behavior (Int, Int) mouseClick :: Event () コンビネータ mapB :: (a -> b) -> Behavior a -> Behavior b mapE :: (a -> b) -> Event a -> Event b

    ntaoo
    ntaoo 2013/12/12
  • AboutAcne

    There are many dermatologists that recommend yogurt for acne. The reasoning is that, if you choose the right yogurt that contains probiotics, then it can fight the bad bacteria that is partly responsible for the cause of acne. Dermatologists obviously aren’t going to tell you to get those fake sugary yogurt substitutes with a bunch of chemicals, artificial sweeteners and corn syrup (why not just u

  • 1