タグ

2011年1月13日のブックマーク (6件)

  • 2010-12-26

    リアクティブプログラミングは、「時間とともに変化する値」=「振る舞い」同士の関係性を記述することでプログラミングを行うパラダイムです。 GUIなどのようにインタラクティブなシステムや、シミュレーションやアニメーションのようにダイナミックに状態が変化するようなシステムを宣言的に記述することができます。 これらの「変化する状態」や「外部とのやりとり」が支配的なシステムは、純粋関数型言語が、その強みを発揮しにくい部分でもあります。 稿では、リアクティブプログラミングが副作用を含む系を宣言的に記述することを可能にし、状態の管理という厄介な問題からプログラマを開放する可能性があることを示したいと思います。 (割と独自研究に基づく解釈ばかりなのでその点ご了承ください。あと例としてでてくるコードは、Pythonベースの擬似コードで具体的なライブラリに基づくものではありません。) Why Reactiv

    2010-12-26
  • Scala の限定継続(Delimited Continuations) - なんとなくな Developer のメモ

    Scala 2.8 では、限定継続(Delimited Continuations)という機能がサポートされる模様。 個人的に、この継続っていう機能の概念がイマイチよく分からなかったので実際に使ってみた。 Scala 2.8 Beta1 continuations プラグイン 事前準備 Scala 2.8 Beta1 で限定継続の機能を使用するには別途プラグインを使う必要があるので、まず Subversion を使って以下のソースを checkout し、Ant を使ってビルドしておく。 http://lampsvn.epfl.ch/svn-repos/scala/compiler-plugins/continuations/trunk continuations プラグインビルド例 >antなお、Ant でビルドするには環境変数 SCALA_HOME の設定が必要なので注意。(plugi

    Scala の限定継続(Delimited Continuations) - なんとなくな Developer のメモ
  • j3259の日記 | スラド

    以下 Tiark Rompf 著A Taste of 2.8: Continuations の和訳。 Scala 2.8 より継続(continuation) という便利な制御フローの抽象観念がサポートされる。継続を用いることで、例えば、コールバック指向でイベント・ドリブンな API を一文ずつ書かれた、より素直なスタイルで使う事ができる。 これは数々のプログラミング作業を簡潔化できる可能性がある: Java NIO を用いた非同期IOExecutor やスレッド・プールの使用ウェブ・アプリケーションにおける複数のリクエストをまたいだ制御フローScala 2.8 では以上の例のための新しいAPI は提供されないが、その基となる継続機構が定まった後では色々期待できるだろう。 shift と reset を茶々っと プログラムのある時点で「捕捉」された継続はそれ以降の「残り」のプログラムを具象

  • Scheme/継続 - Wikibooks

    Schemeは継続(continuation)という、たいへん強力で柔軟な制御機構を備えています。継続を用いれば大域脱出、コルーチン、疑似マルチタスク、バックトラックといった特殊な制御を必要とするプログラムを効率的に記述することができるのです。しかし一方でその抽象度の高さから、「継続は難しいもの」という印象も強いようです。 ここでは継続の正確な定義はとりあえず後に回し、直感的な観点から継続を導入してみたいと思います。 話を簡単にするため、今全ての手続きが1-in/1-outであるような1-Schemeというものを考えます。例えば: (define (double x) (* x x)) (double 2) => 4 (define (add1 x) (+ x 1)) (add1 2) => 3 のような手続きが1-Scheme手続きです。 (なおSchemeではlambdaを自由に導入で

  • Scheme 入門 16. 継続

    1. 初めに 今回は Scheme の特徴的なデータ型である継続について説明します。 このデータ型は他のプログラミング言語には無いので理解するのは易しくないかもしれません。 とりあえず、感じをつかんでいただければ結構です。 この文書では、まず一般的な継続について説明し、それから Scheme の継続について説明します。 多くの解説書ではまず Scheme の継続について説明してから、継続渡しスタイルについて説明していますが、 先に継続渡しスタイルについて説明したほうが、なぜ Scheme に継続というデータ型があるのかがわかりやすいと思います。 2. 継続とは 継続とはトップレベルに戻ってくるまでにしなければならない計算です。 実は、継続は計算過程において普遍的に存在しますが、明示的に扱われることが少ないため、 なじみのない概念になっています。例えば、[example 1] を見てみると、

  • Scalaの限定継続で四天王問題を解いてみた - papamitra

    Scalaの限定継続でSICP4章のambっぽいものを作って四天王問題(勝手に命名)を解いてみた。 一応転載もしておく A「Dがやられたようだな…」B「ククク…奴は我ら四天王の中でも最弱…」C「私はBよりも弱い…」A「そして私は最強ではない…」B「四天王の中に私よりも弱いものが最低でも二人いる…」C「私はAよりも強い…」 ※以上の条件から四天王を強い順に並べよ(5点) コードはこんな感じ。思いのほかあっさり書けた。 ちなみに2.8.0betaのころはscala.util.continuationsではなくscala.continuationsだったらしく、その頃の記事を参考にしていたせいでimportできずに苦しんだのはないしょ。 あと備忘をかねてsbtの人向けにプロジェクトの設定を書いておく。 import sbt._ class MyProject(info: ProjectInfo)

    Scalaの限定継続で四天王問題を解いてみた - papamitra