タグ

継続に関するoto-oto-otoのブックマーク (11)

  • CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    久々にThe n-Category Cafeを見たら、Mike Stayによる"The Continuation Passing Transform and the Yoneda Embedding"なんて記事がありました。 米田埋め込みは圏論ではお馴染み。継続渡しへの変換はコンピュータ・プログラミングではお馴染み。 この2つは、実は同じものなんだよ。なんで、誰もこのことを言わないんだろうね? The Yoneda embedding is familiar in category theory. The continuation passing transform is familiar in computer programming. They're the same thing! Why doesn't anyone ever say so? Mike Stayのこの記事、面白いのだ

    CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Route 477(2007-06-20)

    ■ [ruby][event] Ruby勉強会@関西-16「30分でわかるcallccの使い方」 先週末のRuby勉強会@関西で、Rubyにおけるcallccの使い方について発表させていただきました。 スライド: pdf ppt 継続の説明については「なんでも継続」がよく参照されるんだけど、 ちょっと説明がボトムアップすぎると思うので(僕も最初に読んだときは全然分からなかった)、「callccで何ができるか」という応用面から攻める 構成にしてみました。 最初は「継続かわいいよ継続」「それをすてるなんてとんでもない」と思ってたんだけど、 いろいろ調べてるうちになんでcallccが嫌われるのかが理解できてしまった。callccはかわいいけど、非常に手のかかる奴らしい。 しかも、面白い利用例はいっぱいあるけど実用的な例があんまりないんだよね^^;。 callccが無くなるとRubyの「かっこよさ

    Route 477(2007-06-20)
  • 継続マラソン5 - higepon blog

    昨日書いた以下のコードですが (define (message-join l) (call/cc (lambda (end) (letrec ((message-join-iter (lambda (ll messages) (if (null? ll) (end messages) (message-join-iter (cdr ll) (string-join (list messages (car ll)))))))) (message-join-iter l ""))))) (display (message-join (list "muda" "na" "join" "dane\n"))) zickさんから、ありがたいツッコミを頂きました。 # zick 『message-join-iterはtail recursiveだから、 脱出してもあまり嬉しくない気がするんですが……。

    継続マラソン5 - higepon blog
  • はてなブログ | 無料ブログを作成しよう

    東大生でない中川淳一郎さんが駒場寮で得た人生訓(私と東大駒場寮 3) 駒場寮の北寮9Bの部屋、「基礎科学研究会」、略して「KKK」の部屋 予備校の講師に連れられて、駒場寮に出入りするように 「代わりに面接受けろ」入寮の面接は「替え玉」で突破 「経営と文体の基は寮での読書で培った」 東京大学の駒場キャンパス(東京都目黒区)にか…

    はてなブログ | 無料ブログを作成しよう
  • ホワット・ア・ワンダフル・ワールド ET で Continuation Passing Style

    まぁ,コンパイラとか作ってると CPS (継続渡しスタイル) ってのは非常に重要になってくるんですが,あんまり世間的にはメジャーな概念じゃないのかも. というわけで,突発的に ET で CPS を説明してみる.面倒なので,詳しくは (1) なんでも継続 (2) Scheme:CPS (3) 情報科学実験II資料 (3) CPSの定義 などを見てください (手抜き). # もともとたまたま読んだ (2) に,「CPSそのものは、 PerlでもRubyでもJavaでも書けます。」とあって,でもそんな低水準な言語じゃ面倒だろうに,ET とか Prolog ならもっと楽なのになぁ,と思ったのがきっかけ. ちょー簡単な例題として,リストの長さを求めるルール length を使おう. (length () *n) --> (= *n 0). (length (? | *xs) *n) --> (len

  • Perl で継続 - Continuity - daily dayflower

    ウェブアプリを作っていると,セッションデータを覗きつつ管理しつつ処理フローのどこにいるのか自覚しながら全体を作り上げるのがめんどくさくなってきます。 セッションデータサーバ(memcached 的な),があればいいんじゃね? セッション管理サーバ(認証等も含めて),があればもっといいんじゃね? セッションごとにウェブアプリデーモンを立ち上げて,その後は同一セッションのクライアントはそいつと通信すればいいんじゃね(fastcgi 的) なんて考えたりして つーかそもそもウェブアプリのコードがリクエストドリブンなのが問題じゃん ASP.NET みたくイベントドリブンなアプローチもあるよね でも,昔懐かしのコンソールプログラムみたく直線的なコード書いたりしたいなぁ 暇になったらそういうコードを書いてみるのも面白いかなぁ… と,思っていたら,とっくの昔にありました。 Continuity*1 実の

    Perl で継続 - Continuity - daily dayflower
  • [Haskell] YAHT - 遠回りするかな

  • はじめてのにき(2006-08-29)

    _ こいうのとか __attribute__((section (".interp"))) char x[] = "/bin/ash.static"; main() { puts("hello world!"); } 考えたけど LD script いじらないとダメなのでボツになった。 あと CTOR_LIST に勝手につけくわえるとかできんかと思ったけど これもできなかった。 (03:12) _ ふと発見みたいな http://gusmachine.blog49.fc2.com/ そう継続継続… いわゆる継続サポートと状態シリアライズは違う。 前者は Scheme でも Rhino でも。後者は Smalltalk でも Io でも。 あるいは JS の toScript() は? 継続ベースのWebほげほげとかはほげほげ。 undump は結構マジ。 http://d.hatena.n

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • [haskell][quiz] (forall x. ((x->r)->r)->x) -> Either a (a->r) - ヒビルテ (2006-04-29)

    λ. javascriptでRDFをパース やっぱし、やっている人はいるもんだな。 何かに使えそうな気がするのでメモ。 Simple javascript RDF Parser and query thingy Javascript-RDF Testbed λ. (forall x. ((x->r)->r)->x) -> Either a (a->r) 今日ちょっと混乱したことを元にクイズにしてみた。多分その手の人にはピンとくる問題。表記はHaskellのものを使ったが、実際には多相ラムダ計算の問題と考えていい。 問題 「(forall x. ((x->r)->r)->x) -> Either a (a->r)」という型を持つ関数を定義せよ。(ただし⊥が途中で現れたりする定義は禁止) この関数は何を表しているのだろうか? 解答編 問題の関数はこんな感じで定義できる。 notNotEM ::

  • 2006-04-02

    おとといは久しぶりに長野行ったよ。そして、明日も長野。 あー、そういえば、ハイパーレストランのキャラ紹介に魚の名前だって書いてあったようななかったような。 大卒で新入社員なみなさんは同じ年齢の人たちなのです。 高専卒は即戦力としては使えるけど、そのうち大卒の人たちに負けるというのは結構よくある話らしいので、まあ、これから、頑張って、高専生としてよりいっそう使えない人間になるよう努力していこうと思いました。 アホみたいにスタックを無駄遣いしないようにするには、以下のようにすればいいんじゃないか。 ヒープとスタックを一緒にするのはやめて、スタックはスタックとして使う。ヒープは別。 フレームを作るときに、1 word 分余計に確保する。 んで、こんな感じ func: movl %esp, %ebp subl $12, %esp   # ここで1word余分に movb $0, (%ebp) #

    2006-04-02
  • 1