タグ

Schemeに関するmonjudohのブックマーク (22)

  • http://hop.inria.fr/usr/local/lib/hop/1.9.1/weblets/home/articles/scheme2js/article.html

  • Practical Scheme

    Shiro Kawai まだ下書き Schemeの特徴をあげるときに、「継続」や「call/cc」が出て来ないことはない。 でも、R5RSのcall/ccの項をいくら読んでも、どうもよくわからない。 call/ccを使えばC言語のbreakみたいなのとか、コルーチンとかいう スレッドもどきとかが書ける、というのはわかったけど、一体そういうのが書けて 何が嬉しいのか、そこんとこがピンと来ないんだ。 今、そこにある継続 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも 「継続」は最も謎めいたものの一つと言えるだろう。 文献を紐

    Practical Scheme
  • はてなブログ | 無料ブログを作成しよう

    もういくつ寝ると 今年のはじめにやりたいことリストを作った。今見たら50項目あるリストのうち25個が達成済みだった。ちょうど半分やりたいことをやったということだ。私にしてはまあまあの結果だと思う。満足。 やりたいことリストにあるもののうち、「〜をべたい」系は概ねクリアし…

    はてなブログ | 無料ブログを作成しよう
  • SC: The SC Language System

    Japanese / English SC言語は,Common Lispで実装された,S式の(Scheme風の)構文を持つC言語です.たとえば,以下のようなCコード long sum(long *ar, int n){ long s=0; int i=0; do{ if (i >= n) break; s += ar[i++]; } while(1); return s; } を,SCでは, (def (sum ar n) (fn long (ptr long) int) (def s long 0) (def i int 0) (do-while 1 (if (>= i n) (break)) (+= s (aref ar (inc i))) ) (return s) ) と書くことができます. また,拡張SC言語から別のSC言語への「変形規則」

    monjudoh
    monjudoh 2008/06/16
    『SC言語は,Common Lispで実装された,S式の(Scheme風の)構文を持つC言語です.』
  • はてなようせいとまなぶ Schemeの形式的意味論

    わからない…… わからない…… R6RSのAppendix Aに載っている形式的意味論がわからない…… Schemeの形式的意味論を理解するための冒険は、 R6RSを印刷して読みながら、実際にPrologとかで、 意味論にそったインタプリタを作ることよ わからない…… そんな面倒なことをする意味があるのかわからない…… 当にそれで理解できたのかは筆者もわからない…… それじゃあ、簡単に説明をするからよく聞いてね。 けど、それでもR6RSを印刷したほうがいいわ。 それから、R6RSは「みんなもってる」ものなので、 自分のものだと分かるように、ちゃんと名前を書かないとだめよ。 「おなまえシール」を貼るというのも手ね。 もくじ なにをするの おおざっぱに もうすこしせいかくに きほん かきかえ むずかしいかきかえ ぶんぽう やくそくときほん ぷろぐらむのぶんぽう ぶんみゃくとあな ぶんみゃくの

  • 独習 Scheme 三週間 Teach Yourself Scheme in Fixnum Days

    A practical introduction to the programming language Scheme

  • 大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係

    はじめに 2006年8月、Javaの次期仕様(JDK7)にクロージャを入れる案*が出され話題になりました。クロージャは関数型言語では30年以上の歴史を持ち、プログラミングにおける基的な道具となっています。最近はPerlRubyPythonなどの軽量言語(Lightweight Language)にも取り込まれ、それと知らずに使っているユーザーも増えているのではないでしょうか。 一方、手続き型言語の世界では、完全なクロージャはなじみが薄いようです。C言語からC++へと発展してきた手続き型言語のメインストリームでは、 ガーベジコレクションを持たず、ローカル変数をスタックに置くことを基とする言語のため、クロージャとの相性が悪かった オブジェクト指向を採り入れることでクロージャの代用とできた といったことが理由でしょう。 実際、クロージャとオブジェクト指向プログラミング言語には、メカニズム

    大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係
    monjudoh
    monjudoh 2008/04/28
    クロージャでオブジェクトは実現できるよ的な話
  • まったく初めての人のためのScheme

    田無の権兵衛とk先生をお借りいたします、竹内郁雄先生。 田無の権兵衛:(突然、玄関先で大声) たのもーう。 K: なんだ、騒々しいな。やや、田無の権兵衛ではないか。達者であったか。ささ、上がりなさい。 久しぶりじゃのう。今まで何をなさってたのかな。 田無の権兵衛: 実は昭和の終わりごろ、Lispの修行をするためにインドに旅立ちました。 山奥に篭って修行すること25年。やっと少しはLisp道を極めたように思い、懐かしい日に帰ってまいりました。 K: おお、それは難儀であったな。久しぶりの再会じゃ、今夜はLisp話を酒の肴に語り明かそうではないか。 田無の権兵衛: それはかたじけない。そうそう、日に帰ってきて驚いたのです。日人はみんなスーパーコンピューターを 所有しているですか? K: いや、いくら日人が猛烈に働いて豊かになったとは言え、スーパーコンピューターを個人で所有している

    monjudoh
    monjudoh 2008/04/23
    これは良い入門記事
  • R6RSの歩き方

    Revised^6 Report on Algorithmic Language Scheme -- アルゴリズム言語 Scheme に関する報告書第6改訂版。 2007年9月に正式に決定された。正式な文書は http://www.r6rs.org/ から 入手できる。 R5RSまでのミニマリズムから、実用主義へ大きく方針変更がなされたため、 仕様の分量もR5RSの50ページからR6RSは全4部、計187ページへと大きく膨らんでいる (ただしコア言語の仕様は90ページ、あとはライブラリや設計上の選択の理由説明である)。 そのため、それまでのミニマリズムを良しとするSchemerと、実用に使えるリッチな 仕様を望むSchemerの間でたいへんな議論となった。 結局、Schemeコミュニティ内で投票が行われ、賛成67票、反対35票、棄権10票で 批准された。しかし、批准の基準である総投票数の6

    R6RSの歩き方
  • Gaucheユーザーリファレンス HTML Help版(chm) - higepon blog

    id:onishi:20060512#p1を参考にGauche ユーザーリファレンスのHTML Helpを作りました。 gauche-chm-20060512.zip (約1MB) 速く・簡単に検索できるのでとても便利です。 良かったらご利用ください。 備考 Gauche - A Scheme Interpreterにて2006/05/12時点に公開されていた日語版「Download tar+gzipped htmls」を利用して作成しました。 ツールで目次を生成する都合でオリジナルHTMLのtitleタグから「Gauche ユーザリファレンス: 」という文字列を削除しました。 ツールで変換する際の都合で文字コードをUTF-8→Shift_JISに変換し、metaタグ内のCharsetをShift_JISに書き換えました。 gauche-refj_1.htmlなどがInternet Ex

    Gaucheユーザーリファレンス HTML Help版(chm) - higepon blog
  • oreilly.co.jp -- Online Catalog: プログラミングGauche

    Gauche(ゴーシュ)は、プログラミング言語Schemeの処理系のなかでもきわめて実用的で軽快な処理系です。豊富なライブラリが用意され、スクリプト言語処理系として手軽に扱うことができます。書は、Schemeの初心者を対象に、Gaucheの基礎からプログラミングの実際までを詳しく解説。Gaucheの開発環境でプログラマがどのように考え、作業していくのかを、順を追って理解できます。書によって、SchemeやGaucheのコードを読み解く準備ができ、実用的なGaucheプログラミングへの第一歩を踏み出せることでしょう。 はじめに 第1部 予備知識 1章 LispとScheme 1.1 Lispの起源 1.2 S式と前置記法 1.3 Scheme 1.4 Gauche 2章 Gaucheの特徴 3章 Gaucheの設計思想や誕生の背景 3.1 Perlの影響 3.2 Common Lispの

    oreilly.co.jp -- Online Catalog: プログラミングGauche
  • わーい \(^o^)/ LispをPostScriptで書いたLispで書いたよー! (リリカル☆Lisp 開発日記)

    zickです。 最近、巷(*)ではLisp(Scheme?)を実装するのが流行っているようで。 その流れにのっとって私も変なものをつくってみました。 ***PostScriptで書いたlisp*** ソース 実行結果 名前はまだないのですが、仮にpslispと呼びます。 このpslispはPostScriptで書いたLispインタプリタです。 単に式を評価するだけではなく、その値を図示してくれる優れもの(?)です。 実は去年の4月ごろにほぼ完成していたんですが、 条件分岐などを加え、再帰が使えるようになりました。 ***pslispで書いたlisp*** ソース 実行結果 pslispで動かすためにエスケープ文字を付加し、改行を消しているためカオスなことになってます。 まあ、これだけ見てもなんのことやらといった感じですが、 自分で書いたlispインタプリタの上でさ

    monjudoh
    monjudoh 2008/01/24
    和田栄一先生がハッピーになれそうな取り合わせですね。それはそうと、『単に式を評価するだけではなく、その値を図示してくれる優れもの(?)です。』ここがすごくいいと思った。
  • わーい \(^o^)/ Scheme もどきを JS で書いたよー! - IT戦記

    昨日の夜のこと (1000 人スピーカープロジェクトの打ち上げが終わって、解散後、数名でサイボウズラボに寄り道) id:amachang: あー今日は楽しかったねー(レゴみたいなおもちゃで遊びながら) id:nishiohirokazu: うんー楽しかったねー(レゴみたいなおもちゃで遊びながら) id:amachang: yuum3 や yad-EL さんが言ってたみたいに SICP 読んでみたいなー id:yukoba: …黙々… id:amachang: ところで yukoba さん、さっきから何やってんの id:yukoba: え? Scheme 作ってる(超笑顔) …レゴみたいなおもちゃ ポロリ id:amachang & id:nishiohirokazu: えー!抜け駆けずるいー!!!>< id:amachang: おれも作る><! id:nishiohirokazu: えっえ

    わーい \(^o^)/ Scheme もどきを JS で書いたよー! - IT戦記
  • PythonでSchemeを作りました - 西尾泰和のはてなダイアリー

    1000人スピーカカンファレンスの二次会の飲み会会場を追い出された後、なぜかサイボウズラボに戻って三次会。 なぜかyukobaがSchemeを作り始め、amachangも「作る」と言い出した!「どうせだからハッカソンにしよう」って話が!いや、そんなことしだしたら帰れないし!ああっ!でも今書かなければ一生書かないかもしれないっ! というわけで書いたのがこちら。 どう書く?org 5414 にしお: 飲み会の後5時間で作ったものなのでかなり...(Schemeもどきの実装) - 投稿の詳細 残りの二人の書いたものはこちら。 Scheme on JavaScript 作りました - yukobaの日記 わーい \(^o^)/ Scheme もどきを JS で書いたよー! - IT戦記 - せっかくなのでハッカソンの雰囲気を少しでも伝えられるように書いてみる↓ 以下オフラインの発言は「」、Ling

    PythonでSchemeを作りました - 西尾泰和のはてなダイアリー
    monjudoh
    monjudoh 2008/01/21
    楽しそう
  • Scheme on JavaScript 作りました - yukobaのブログ

    昨日は、1000speakers の第1回のイベントがありました。1次会は Ustream にて参加し、2次会から現地で参加しました。 2次会でSICP読書会の話で盛り上がり、水曜日の読書会に参加しようと言うことになり、amachang など数名の方々に色々と Scheme の書き方を教えてもらいました。 3次会が楽しかったです!23:30頃からサイボウズラボにて3次会が始まったんですが、僕が、せっかく教えて頂いたので、Scheme の実装を JavaScript で始めたら、西尾くん(id:nishiohirokazu)と id:amachang が参加し始め、実装大会となりました。 その5時間の成果が、http://goldenscheme.accelart.jp/ です。 全員、基文法は実装できました!! 処理系を実装するに当たり、言語を問わず、一般論として、難しいのは2カ所です。

    Scheme on JavaScript 作りました - yukobaのブログ
    monjudoh
    monjudoh 2008/01/21
    ソースを読もう
  • Y Combinator - LoveRubyNet

    $Id: ycombinator.html,v 1.6 2002/06/27 23:37:39 aamine Exp $ [ruby-list:35058] に刺激を受けて Y combinator を解読してみた。 こんなもん読むくらいなら以下の参考ページを読んだほうがいい。 参考にした (というかほとんどそのままな) ページ (英語) http://www.ececs.uc.edu/~franco/C511/html/Scheme/ycomb.html 動機 再帰関数は再帰するときに自分自身を名前で呼ぶのが普通である。 これをなんとかして名前を使わず、関数そのものを呼ぶように させたい。 求めかた まず単純な fact (階乗) を以下に示す。言語は Scheme である。 (define fact (lambda (n) (if (zero? n) 1 (* n (fact (- n

    monjudoh
    monjudoh 2007/12/11
    Yコンビネータ
  • 俺様言語 Lazy を作る。番外編。Yコンビネータ。 - 言語ゲーム

    Y コンビネータとは何か? あなたはどんな言葉でも使う事が出来ます。しかし、知らない言葉を使う時は、今まで知っている言葉で説明できなくてはなりません。 例えば、「カニ」と「コロッケ」と「クリーム」だけを知っている時、あなたは「カニクリームコロッケ」について語る事が出来ます。「『カニクリームコロッケ』とは、『カニ』の味のする『クリーム』の入った『コロッケ』である。」しかし、「かぼちゃコロッケ」については語る事は出来ません。なぜなら「かぼちゃ」について何も知らないからです。 さてここで問題。「皮」や「剥いだ物」について知っている時、次の説明は適当でしょうか?「『タマネギ』とは、『タマネギ』の『皮』を剥いた物である。」私たちは、タマネギの皮を剥いてもタマネギである事を知っています。しかし、タマネギを説明するのにタマネギを話題に出しても良いものでしょうか?インチキ臭い感じがしませんか?こういうのを

    俺様言語 Lazy を作る。番外編。Yコンビネータ。 - 言語ゲーム
    monjudoh
    monjudoh 2007/12/11
    Yコンビネータ…再帰を再帰無しで定義したもの。何でこうなるのかはさっぱり分からない。
  • GaucheによるSchemeプログラミング

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GaucheによるSchemeプログラミング
    monjudoh
    monjudoh 2007/11/29
    Scheme入門、Scheme界隈の動向(2004/02現在)、Gaucheの紹介
  • ブラウザで S 式をつかいたい>< - 女子高生ぷろぐらまーなお☆のブログ

    JS オレオレ言語ブーム - IT戦記 で OreScript時代の幕開け - yukobaのブログ を知ったので、Scheme みたいなのをつくってみました>< でもぜんぜんできてないです(笑) naoscheme/index.html <script type="application/x-naoscheme"> (define myalert (msg) (alert msg)) (set! test "*_*") ((lambda (foo) (myalert foo)) test) </script> <script type="application/x-naoscheme"> (add-event-listener window "load" (lambda (e) (alert e) (call document.body "appendChild" (call docum

    ブラウザで S 式をつかいたい>< - 女子高生ぷろぐらまーなお☆のブログ
    monjudoh
    monjudoh 2007/11/18
    OreScriptでScheme
  • Scheme、Common Lisp、Emacs Lispの比較

    「王女アテー姫を含めてハザールの男女は、 この能力によって朝ごと変身を済ませ、 そのたびに、見たこともない斬新な顔で立ち現れる。 だから近親者同士でさえ見分けがつかないほどだ。 旅行者の見聞はこれとはまったく異なり、ハザールの顔つきはどれもそっくりで、 しかも歳を重ねても容貌が変わらない。それゆえ人違いの混乱や厄介が絶えない。 どちらにせよ、結果は同じことで、ハザール族の顔はまず覚えられないし、 覚えても無益となる。」 ミロラド・パヴィチ「ハザール事典」 Lispには数限りないほどの方言がある (例えば、 http://dreamsongs.com/NewFiles/Hopl2Slides.pdf とか参照)。 そのなかで普及している Lispというと、 Scheme、Common Lisp、Emacs Lispの3つだろう。 ユーザの多さでいうと、多い順に Emacs Lisp、Comm