1 名前:デフォルトの名無しさん [2008/02/16(土) 02:23:50 ] 「計算機プログラムの構造と解釈」に関する議論とQ&Aの為のスレです。 SICP(英語) mitpress.mit.edu/sicp/full-text/book/book.html 「計算機プログラムの構造と解釈」の原書です。 全てオンラインで読めます。 訳者の計算機プログラムの構造と解釈に関するホームページ www.ipl.t.u-tokyo.ac.jp/sicp/ 問題の解答もおいてます。 書籍情報(Amazon) www.amazon.co.jp/exec/obidos/ASIN/489471163X/250-3648248-8159430 前スレ 【SICP】計算機プログラムの構造と解釈【Scheme】 pc11.2ch.net/test/read.cgi/tech/1107345738/ 【入門】Common Lisp その4【質問よろず】 pc11.2ch.net/test/read.cgi/tech/1201402366/
2 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:28:42 ] Web上のSICP読書会 www29.atwiki.jp/sicpstudygroup/ 翻訳の良し悪しについて語るスレではありません。 翻訳して下さっているだけ有難いという心を持ちましょう。
3 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:33:15 ] >>1 乙
4 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:34:50 ] ■関連リンク 本家MITのSICP OpenCourseWare ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/index.htm 東京大学:『Scheme演習』 www-ui.is.s.u-tokyo.ac.jp/~hara2001/scheme/ 京都大学:『アルゴリズムとデータ構造入門』 winnie.kuis.kyoto-u.ac.jp/~okuno/Lecture/07/IntroAlgDs/ ここに図形言語に関する詳しい説明もあります。
5 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:43:46 ] >>2 > 翻訳して下さっているだけ有難いという心を持ちましょう。 それはないわw
6 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:45:19 ] >>5 またおまえか
7 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:47:35 ] 前スレで紹介された関連書籍 Friedman, Felleisen "Little Schemer" Sussman, Abelson, Sussman "Structure and Interpretation of Computer Programs" Chris Hankin "An Introduction to Lambda Calculi for Computer Scientists" Raymond Smullyan "To Mock A Mockingbird" W. Kluge "Abstract Computing Machines: A Lambda Calculus Perspective" Friedman, Wand, Haynes "Essentials of Programming Language"
8 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:48:53 ] >>1 乙 >>7 Simply Schemeは?
9 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 03:00:05 ] >>8 わすれてた。d。
10 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 03:21:44 ] ケント・ディヴィグ "Scheme"
11 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 03:26:29 ] Paul Graham "On Lisp" Paul Graham "ANSI Common LISP"
12 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 10:43:36 ] How to Design Programs(HtDP)ってSICPとどんな関係なのかな? SICPを簡単にした物? SICPを読む準備? 関係無し?
13 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 10:48:20 ] >>12 読んだ事ないけどJavaなんかの話も出てくる。デザイン(パターン)の話が入ってるらしい。 関係ある話もあるみたいだけど、Schemeを学ぶ目的には向いてない。
14 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 10:56:56 ] pc11.2ch.net/test/read.cgi/tech/1107345738/996 >Lispマシンが失敗した理由はLisperにしか使いこなせないからじゃないです。 >そういうものを目指していたわけでもありません。 > >単に、ごく普通のコンピュータのほうがLispを実行しても速くなってしまったので、 >存在価値が無くなっただけです。 マシーンが遅いとLispマシンに何か優位性でもあるわけか?
15 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 11:13:38 ] >>14 > >単に、ごく普通のコンピュータのほうがLispを実行しても速くなってしまったので、 > >存在価値が無くなっただけです。 > > マシーンが遅いとLispマシンに何か優位性でもあるわけか? 普通のコンピュータでLispを実行するよりも速いなら、 Lispマシンに優位性がありますよね?
16 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 11:22:36 ] >>前スレ987 >おまえらそんなに頭が良いのにどうしてSchemeのOSとか、 >SchemeのEmacsとか、更にもっと気の利いたプログラム作らないの? SICP読んでSchemeのOS作ってる人はいるよ ttp://d.hatena.ne.jp/higepon/
17 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 11:50:02 ] >>7 Essentials of Programming Languageはもうすぐ3版が出るんだな
18 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:42:26 ] >>15 そこがよくわからない。Lispマシンと他のマシンが同じ速さだとして、Lispマシンに優位性がないなら特定ユーザに特化しているから衰退したんじゃないの? つまり一般ユーザ向けに出来ていなかったという主張の方が正しそうだけど。
19 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:52:24 ] www.oreilly.co.jp/editors/archives/000158.html 面白そうな本を発見。Lispの話はあるのかな?
20 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:53:41 ] どうでもええやん
21 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:05:15 ] >>19 Chapter 31: Emacspeak: The Complete Audio Desktop Chapter 33: Writing Programs for "The Book" Warning to Parenthophobes その他ちらほら話題が。
22 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:17:50 ] >>14 引用元を書いた人だが、何を言いたいのかさっぱり判らない。 日本語でお願いしたい。
23 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:20:56 ] >>18 仮にLispだけでも普通のマシンより速かったなら失敗しなかっただろう。(仮定法過去)w と書けば理解できるか?
24 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:38:23 ] 前スレ>>987 > MIT Schemeのエディタ なにそれ?
25 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:43:44 ] エドウィンのことじゃね?
26 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:21:34 ] 速度なんかもんだいじゃないだろ。 他のマシンはユーザーフレンドリになったけどLispマシーンはそうじゃなかった。 ただそれだけ。
27 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:29:15 ] ドザやマカーが喜びそうなOSではないなw
28 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:12:28 ] SmalltalkマツーンのALTOも高価だったのがネックで速度とかユーザーフレンドリーとか関係ないよ。
29 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:12:30 ] lisp shellで十分
30 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:26:25 ] >>26 おいおい、Lispマシンはもっとも最初のまともな統合GUI環境の一つだぞ。
31 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:37:22 ] >>26 凄い無知だな
32 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:38:58 ] マックの原型はInterlisp-Dでそ。
33 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:27:29 ] >>30-31 論点ずれてるぞ。いま当時のLispマシーンを見て最先端の統合GUI環境なのかよw そうじゃないから衰退したって話だろ。
34 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:29:38 ] もしもApple][がLispマシンとして成功してたらMacもWinもLispマシンになってただろうな。
35 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:41:40 ] 「今当時のLispマシーンを見て」? 何を言っているのだ、お前は?
36 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:44:09 ] >33 そんな話してるのはあんただけ 特殊用途でもコストを支払う需要があれば存続できるんだよ
37 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:46:07 ] >>33 当時最先端のGUI環境だったんだよ。衰退した原因は明らかに別。
38 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:47:12 ] せいぜいWin95あたりからの歴史しか知らない人なんだろうな
39 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:49:31 ] 今見たら、 昔のものは、 非最先端
40 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:49:53 ] >単に、ごく普通のコンピュータのほうがLispを実行しても速くなってしまったので、 >存在価値が無くなっただけです。 とかいってたのに >特殊用途でもコストを支払う需要があれば存続できるんだよ と主張をどんどんすりかえてるねw
41 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:50:38 ] なんだ禿自慰かよwww
42 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:50:52 ] おまえの敵は一人じゃないんだよw
43 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:52:33 ] >>40 その特殊用途(Lispの高速実行)すら叶わなくなったから存在意義が無くなったんだよ
44 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:54:19 ] 聞く耳持たない人なのかな。だったら議論やめるよ。
45 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 18:55:49 ] 聞く耳がないだけでなく 「いま見て当時の〜が最先端ではない。 だから廃れた。」 と異常な理屈の持ち主なので…
46 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 19:04:57 ] 今見たらとか全然ズレてるよな。 いや、今見てもかなりイケてるんじゃないのかな。
47 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 19:07:08 ] Lispマシーンとか解析概論を話したいならスレチなのでよそ逝ってくれ。迷惑だ。
48 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 19:13:57 ] そうだなスレチだからやめよう。
49 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:16:17 ] pc11.2ch.net/test/read.cgi/tech/1107345738/964 前スレで行列演算を探してたので。Gauche用みたいだけどSchemeなので読めるでしょう。 てか使ってる処理系ぐらい書けよ常考。 homepage3.nifty.com/oatu/gauche/nuage.html
50 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:17:17 ] 行列演算のデータ構造に処理系云々がどう関わるのか
51 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:30:35 ] >>50 ぐぐれかす
52 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:16:48 ] >>47 ごめんなさい。もうしません。
53 名前:デフォルトの名無しさん [2008/02/17(日) 00:52:10 ] スレ違いかも知れませんがどうしても聞きたいことが・・・ ニコニコ動画などで、有料会員登録をすると特別サービスが受けられる代わりに毎月銀行からお金が引かれますよね? あの仕組みはどうなっているのでしょうか?自分で作る事はできますか??
54 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:00:36 ] ニコニコはわからないが、 アクセスした奴のlP抜いて銀行システムをハックして引き落とすとか そういうスーパーハッカーがいるという話は噂で聞くね。 実際どうやってるかはググった方が良いよ。 スレ違いだから怖いおじさんに叱られるよ?
55 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:01:34 ] スレ違いだが特別に教えてやる まずクレジットカード番号をこのスレに入力しろ
56 名前:デフォルトの名無しさん [2008/02/17(日) 01:02:04 ] 「計算機プログラムの構造と解釈」に関するQ&Aなんでスレ違いじゃないんじゃないかなぁと思って。 誰か答えてくれませんかね。ググっても出ない。
57 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:03:18 ] じゃあソース出せ。
58 名前:デフォルトの名無しさん [2008/02/17(日) 01:05:19 ] いや何のソースを
59 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:06:26 ] >>56 という名前の本のスレだ すれ違いだ
60 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:06:40 ] プログラムのソースに決まってるw
61 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:07:30 ] >>56 ひろゆきにメールしろよ
62 名前:デフォルトの名無しさん [2008/02/17(日) 01:10:42 ] >>59 関連性は大いにある >>60 プログラムのソースがわからんから構造を聞いてる
63 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:13:02 ] ソースがないのに構造を聞かれても
64 名前:デフォルトの名無しさん [2008/02/17(日) 01:16:01 ] ソースがあれば構造は分かる
65 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:19:58 ] www.amazon.co.jp/dp/489471163X/ まず↑の本と>>53 の話がどう関連性があるか言ってもらおうか? それが示せないならスレ違いで終了
66 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:22:23 ] そろそろ 頭固いですね、意地っ張りですね、低脳の集まりですか? みたいなレスが来る
67 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:25:06 ] 結局、翻訳が悪いから解釈出来ないんですよね?
68 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 01:37:05 ] 的外れになってまいりました
69 名前:デフォルトの名無しさん [2008/02/17(日) 01:47:59 ] 頭固いですね 意地っ張りですね 低脳の集まりですか?
70 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 02:03:21 ] ここには頭が柔らかい奴なんかいないよ。 タマゴ当てるとタマゴが割れる位に頭が堅いはずだよ。俺にはわかる。 だからLispマシンも消えたし翻訳もこれで満足だしニコニコのシステムもわからない。
71 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 02:07:40 ] SICPをアマゾンで買ったんですけど代引きってありますよね、 配達の人にお金払ってそれがどこへ行くんですか? 構造を教えて下さい。
72 名前:デフォルトの名無しさん [2008/02/17(日) 02:08:11 ] ワロスw 面白いけどよそでやってくれw
73 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 02:13:30 ] Edwinてデバッグモードも付いてるし、使いこなせばなかなか楽しいのかも。 Dr.Schemeは使いやすいんだが、メモリ食うし時々暴走して落ちるw 今読んでるみんなは何使ってますか?
74 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 02:32:14 ] アマゾンも冗談ではなくかなりLisp使っているという話をどこかで読んだ。
75 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 04:04:46 ] へえ、amazonも? グレアムの事例と混同してないだろうな
76 名前:デフォルトの名無しさん [2008/02/17(日) 08:23:32 ] バベル案内で昔はLisp使ってたけど、今は使わなくなった。 糞ばかりだ。みたいなことはかかれて棚。
77 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 08:38:47 ] 今、4章の超循環評価器を作っている。 フレームについてなんだけど、連想リストを使わないで ((var1 var2 ... varn) val1 val2 ...valn) とするのはその方が扱いやすいからなのかい?
78 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 08:40:59 ] >>73 ChezEdit-NTとMzSchemeを主に使っているよ。
79 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:14:16 ] 既存のelispの資源を活用しつつschemeが動くようなeclipseの拡張がほしい pymacsはそれっぽいけどpythonはマクロが使えないのでいま一つ
80 名前:デフォルトの名無しさん [2008/02/17(日) 16:14:54 ] >>77 言語仕様として連想リストなんてあったっけ? 俺的にはそれで内側の環境からさかのぼっていく感じで十分分かりやすいと思うけどなぁ
81 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:28:28 ] >>80 別に連想リストに拘っているわけじゃないんだけど、 慣習として(((x . 1)(y . 2)) ((z . 3)))みたく やる人が多いんじゃないかって思ったんだ。 岩手大学の講義資料を見ると↑式に説明してるみたいだし。 ま、どっちでもいいのだけど。
82 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:34:43 ] 4章の評価器をベースにcall/ccを実装しようと 思うのだけどなかなか難しい。 誰かやった人いる? スタックコピー方式という方法があるらしいのだけど。
83 名前:デフォルトの名無しさん [2008/02/17(日) 16:39:07 ] いや、そんな事言ったら東大京大はSICPに準拠してるけどね まぁ好みじゃない?別に連想でも悪いとは思わないし
84 名前:デフォルトの名無しさん mailto:age [2008/02/17(日) 16:55:24 ] キケロ・イン・ロンドン キケロ・イン・ロンドン
85 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 18:05:41 ] >>82 一度SECDマシンで考えて、 <S,E,C,D>(のコピー)が継続そのものであることを理解したら、 継続パッシングスタイルに評価器を書き換える。
86 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 19:32:54 ] >>85 ありがとう。考えてみるよ。
87 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:35:36 ] Schemeって本当にエレガントだ。一切無駄がなく、明晰だ。
88 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 23:17:25 ] >>82 call/ccを実装する前に、非再帰的にevalを定義してみ 非再帰的に書くってことは、スタックや継続の代用品を自分で作るってことだから
89 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 23:22:43 ] いきなり非再帰的にevalが難しいなら、ステップとして非再帰的なクイックソートを作る事オススメ
90 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 23:40:54 ] >>88 「スタックや」は不要なんじゃね?
91 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 00:43:54 ] >>90 非再帰的ならいるでしょ。線形再帰じゃないし
92 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:12:36 ] SICPが難しいと感じるレベルの人間ですが、 ものまね鳥の本ってSICP読むのに役立つの?
93 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 07:19:33 ] >>88 最初、Guy Steele博士の1975年の論文に掲載されている 処理系を参考にしようとしたんだ。これは非再帰で書かれていた。 だけどこれだとbeta式なんてのがでてこてよくわからなかった。 CPUのプログラムカウンターに相当するものをScheme処理系でも 作ることができればそのカウンターと環境とを保存しておけば call/ccをしたときの状態に復帰できるんじゃないかって考え はじめたところ。ひげぽんさんの考察も参考にしている。 生のCPU、機械語ならレジスタとプログラムカウンターと スタックを保存しておいて継続が呼ばれたらそれらを復元して プログラムカウンターを継続が作られたアドレスにすればいいの ではないかと思う。関数型の言語は抽象度が高いので簡単には いかなさそう。
94 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 11:50:05 ] CPSでevalを書き直して、 continuationを処理するところを追加するのがいいと思う。 Tail recusionだから、CPSなら当然非再帰に実行される。 コードでは再帰を使っていても。 非再帰にこだわってスタックを使い廻すのはscheme的でない。 演習としては面白いと思うけれど。 カンニングしたければ、 Essentials of Programming Languages 71. Continuation Passing Interpreterで。
95 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:29:43 ] >>94 ありがとう。その本、持っていたと思う。 帰ったら読んでみるよ。
96 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 15:53:56 ] ガイLスチールJrって凄いよな… どうしたらあんな風になれるんだ?
97 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:11:53 ] CPSな関数は戻ってこないらしいけど、 それならdelayして戻してからforceするスタイルもありえるよね。 こんな感じ (lambda (x y ... k) (do ((p (xxcpsxx ... k) (force p))) (#f))) なら (do以外は) 完全に非再帰になる。 末尾最適化のない言語でも書ける。
98 名前:97 mailto:sage [2008/02/18(月) 20:31:07 ] 82ではないが (define-syntax cps (syntax-rules () ((_ (fn arg ...) k) (delay (k (fn arg ...)))))) (define (cps-factorial n k) (cps (= n 0) (lambda (b) (if b (k 1) (cps (- n 1) (lambda (n-1) (cps-factorial n-1 (lambda (f-n-1) (cps (* n f-n-1) k))))))))) (define (factorial n) (call/cc (lambda (k) (do ((p (cps-factorial n k) (force p))) (#f)))))
99 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:30:16 ] >>94 > Essentials of Programming Languages > 71. Continuation Passing Interpreterで。 3章がenvironment passing interpreterで、 7.3がimperative interpreger。 Reflection library.readscheme.org/page11.html Continuations and Continuation Passing Style library.readscheme.org/page6.html あたりもいいんじゃね? Kenichi Asai. "Reflecting on the Metalevel Interpreter Written in Direct Style"とか。
100 名前:95 mailto:sage [2008/02/18(月) 23:22:34 ] あれ?オレの本って古いのかな。first edition? Fifth printing,1994 となってる。 8章がContinuation-Passing Style 9章がContinuation-Passing Interpreters これ買ったのって10年以上前だった。