タグ

frpとHaskellに関するjoan9のブックマーク (6)

  • 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
  • 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
  • FRPの話 - maoeのブログ

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

    FRPの話 - maoeのブログ
  • 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