Code Archive Skip to content Google About Google Privacy Terms
back (技術評論社 Software Design誌 2000年 7月号 に掲載された、「Scheme への招待 〜 GNU標準のスクリプト言語入門」の 記事を加筆修正したものです *1) はじめに みなさんは Lisp をご存じでしょうか。Lisp は 1950年代後半*2に John McCarthy によって 開発されたプログラミング言語で、 おもに記号処理などの分野で今も利用されています。 Scheme は Lisp から派生した言語のひとつで、 Guy Lewis Steele Jr. および Gerald Jay Sussman によって 1975年に開発されました。Scheme はよく 「Lisp の方言」などと呼ばれますが、Lisp よりも簡単な仕様 で、それでいて複雑なプログラミングが可能なように設計されています。 どのプログラミング言語にも長所と短所がありますが、S
1. Scheme のすすめ Scheme を使うと、 美しいコードを書くことができます。 プログラミングが楽しくなります。 これが Scheme を習う唯一の理由です。 Scheme を使って実用的なプログラムを書こうとするとあてが外れるでしょう。 しかし、優秀なハッカーは Scheme 好きが多いので、Scheme を習っておいて損は無いと思います。 実際、最も優れたコンピュータ科学の教科書の1つである Structure and Interpretation of Computer Programs (SICP) 日本語訳:計算機プログラムの構造と解釈 のプログラム例も Scheme で書かれています。 また、GNU は拡張言語に guile という Scheme を採用しています。 guile は MS-Word や Excell のマクロのようなもので、 簡単なスクリプトで、アプ
Chat (Lingr.com) Informaiton コンセプト 注意事項 About Us メーリングリスト コメントの入力方法 RSSの配信 Daily 今日の一行(2008-10-10) Column MySQL日本語の旅(5/1) 一風変ったHaskellλ門(6/13) SICP Answer Book (5/31) 問題3.26追加 Zope Solution Zope3 幕の内 Zopeとは なぜZopeなのか Extra JavaCube 電気の使えるカフェ情報(1/8) アーカイブ Project Looking Glass XPで楽しい人生を OSS案内所 書籍の紹介 技術者のブックマーク 読書会、勉強会 Site Info Recent Changes アクセス統計情報 関連リンク 『計算機プログラムの構造と解釈 第二版』解答集(未完) Wizard Book:
約半年をかけて計算機プログラムの構造と解釈(SICP)を読み終わりました。 (途中で、練習問題をスキップしたりしましたが・・・) 半年もかけたのでちょっとだけ振り返って見ます。 SICPを読む過程で得たもの まずはSICPを読む過程で得たものからざっと列挙してみよう。 構文解析を理解し自前で実装できるようになった 字句解析を理解し自前で実装できるようになった ストリームを理解した 遅延評価を理解した 手続きが first class objectである言語での考え方を学んだ 型変換の導入の動機とその意味を理解した 手続きの抽象化の導入の動機と過程を学んだ 高階関数を使ったり書けるようになったりした クロージャを理解した Schemeを書けるようになった 再帰処理を自然に書けるようになった フルスクラッチでインタプリタを書けるようになった コンパイラを自前で書くことが出来そうだとの感触を得た
id:nozom:20060317#1142577630の続き。世界で最も誤解された言語とも呼ばれるJavascriptを使って継続渡しを書いてみた。 なお、Javascriptの処理系としてRhino*1を使った。参考文献は『入門Javascript』(ISBN:4756138713)。 function fib(n) { if ((n == 1) || (n == 2)) return 1; else return fib(n - 1) + fib(n - 2); } function fib_cps(n, k) { if ((n == 1) || (n == 2)) return k(1); else return fib_cps(n - 1, function(v1) { return fib_cps(n - 2, function(v2) { return k(v1 + v2);
Shiro Kawai まだ下書き Schemeの特徴をあげるときに、「継続」や「call/cc」が出て来ないことはない。 でも、R5RSのcall/ccの項をいくら読んでも、どうもよくわからない。 call/ccを使えばC言語のbreakみたいなのとか、コルーチンとかいう スレッドもどきとかが書ける、というのはわかったけど、一体そういうのが書けて 何が嬉しいのか、そこんとこがピンと来ないんだ。 今、そこにある継続 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも 「継続」は最も謎めいたものの一つと言えるだろう。 文献を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く