1 名前:デフォルトの名無しさん mailto:sage [05/02/02 21:02:18 ] 「計算機プログラムの構造と解釈」に関する議論とQ&Aの為のスレです。 SICP(英語) mitpress.mit.edu/sicp/full-text/book/book.html 「計算機プログラムの構造と解釈」の原書です。 全てオンラインで読めます。 計算機プログラムの構造と解釈 第二版 (snip) に関連するホームページ www.ipl.t.u-tokyo.ac.jp/sicp/ 書籍情報(Amazon) www.amazon.co.jp/exec/obidos/ASIN/489471163X/250-3648248-8159430 Lisp一般に関する話題は CommonLisp Scheme Part12 pc5.2ch.net/test/read.cgi/tech/1100229366/l50
51 名前:デフォルトの名無しさん mailto:sage [05/03/06 11:38:15 ] >>50 3章のカプセル化の例を教えると大抵の厨はビビるけどな
52 名前:デフォルトの名無しさん mailto:sage [05/03/06 19:06:12 ] でOOの背景理論になりそうだったのをぶちこわしたのがSchemeだと教えればカンペキ。
53 名前:デフォルトの名無しさん mailto:sage [05/03/06 19:16:47 ] 手続き型OOPLほどメジャーではないし 関数型言語ほど美しくもなく生産性の高くない半端言語
54 名前:デフォルトの名無しさん [05/03/06 19:36:16 ] >>48 まあそういうこと。Schemeって、「言語オタ」になりえない言語だと思う。
55 名前:デフォルトの名無しさん mailto:sage [05/03/06 21:43:31 ] ほら、>>53 みたいな厨は話をそらすしかなくなるから 後はスルーで十分。
56 名前:デフォルトの名無しさん mailto:sage [05/03/06 21:51:03 ] クロージャ = オブジェクト ですがなにか?
57 名前:デフォルトの名無しさん mailto:sage [05/03/06 21:53:51 ] 多態するクロージャってのも、キモいな。
58 名前:デフォルトの名無しさん mailto:sage [05/03/06 22:08:51 ] >>56 そりゃお前定義ではオブジェクトはクロージャだって意味でしかないな。 アクター=クロージャならまだしも。 つかSICPの話をしろよ。
59 名前:デフォルトの名無しさん [05/03/07 00:32:44 ] (define (p) (p)) (define (test a b) (if (= a 0) 0 b)) (test 0 (p)) これがapplicative-orderの評価順序なら、testに2番目の引数を渡すときに (p)を評価せねばならず、その(p)の評価には(p)の評価が必要・・・という無限ループになることは分かりました。 これがnormal-orderだとどうなるのでしょう? こっちもtestの2番目の引数を基本的手続きまで展開しようとするので、 無限ループ陥るのですか?testの1番目の引数が0だから2番目の引数は 評価はされない、というのは分かるのですが、式の展開はされますよね?
60 名前:デフォルトの名無しさん mailto:sage [05/03/07 03:04:21 ] どう展開されるかが問題でしょ
61 名前:デフォルトの名無しさん [05/03/07 21:53:19 ] 昔はサイトにフルテキストのpsも置いてあった気がする・・・今はHTMLで、しかも一括ダウンロードできるファイルは置いてない。 さすがに昔は気前が良すぎたかな。
62 名前:デフォルトの名無しさん [05/03/10 17:43:03 ] pair が手続きの組み合わせで表現できるって言うの、なんかあたりまえのような不思議のような、 とにかく驚愕した
63 名前:デフォルトの名無しさん mailto:sage [05/03/13 20:34:14 ] >>61 wget -r しる!
64 名前:デフォルトの名無しさん [05/03/13 22:58:35 ] SICPってSchemeのマクロを解説している?
65 名前:デフォルトの名無しさん mailto:sage [05/03/14 01:09:11 ] してないよ。 Schemeのマクロってたぶん当時は無かったと思う。 LISPのdefmacroをSchemeで使うのも変だとか思ったんじゃないかな。
66 名前:デフォルトの名無しさん mailto:sage [05/03/14 19:10:55 ] ソレより何より、SICPはSchemeを使ったコンピュータ サイエンスの入門本であって、Schemeの本じゃないから、 当時マクロがあったとしても関係ないんじゃないかな。
67 名前:デフォルトの名無しさん mailto:sage [05/03/14 19:22:23 ] コンパイル環境と実行環境の区別は教えてもいいと思うんだが、SICPには場所がないかも。 余談だけどC++にもtemplateの仕組みを無理矢理応用したマクロがある。 C++な人らはmetaprogrammingと呼んでいるけど。わかりにくいことこの上ない。
68 名前:デフォルトの名無しさん mailto:sage [05/03/14 20:51:18 ] マクロってR5RSから入ったろ?
69 名前:デフォルトの名無しさん mailto:sage [05/03/14 21:46:31 ] R3RS以前からありますが。
70 名前:デフォルトの名無しさん mailto:sage [05/03/15 01:25:59 ] r5rs 以前は仕様上で正式採用されてたわけじゃないんじゃない。 r4rs のはあくまで付録でしょ?
71 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 13:58:26 ] SICPを読むときexerciseはやりますか? 飛ばしますか?
72 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 20:48:26 ] 適当に。 どの問題だったか、ちゃんとやったら修論のねたになるよ、 みたいなこと書いてあった気がしたし。
73 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 22:07:09 ] 少なくとも2章までの問題は全部やらないと、この本の意味がない 問題が面白すぎ
74 名前:デフォルトの名無しさん [2005/04/09(土) 19:00:27 ] SICPの演習問題はかなり含蓄のある問題ですよね。
75 名前:デフォルトの名無しさん mailto:sage [2005/04/09(土) 21:34:12 ] 演習が本体だからね。
76 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 09:37:10 ] 学生さんがのんべんだらりと読むにはそれもいいかもね。
77 名前:デフォルトの名無しさん mailto:sage [2005/04/12(火) 23:49:20 ] この本は高校のうちにその存在を知っておきたかったなあ
78 名前:デフォルトの名無しさん [2005/04/15(金) 23:39:09 ] 勤務時間中にSICPの例題解いてる 浮世の穢れが浄化される気分だ
79 名前:デフォルトの名無しさん [2005/04/16(土) 04:31:48 ] SICPはSchemeの入門にはいいけど、簡単すぎるし、ちょっと古い。 極めたい人にはEOPL(Essensials Of Programming Languages)の方がオススメ。 オブジェクト指向関数型言語のインタプリタをSchemeで作っていく。 海外の大学では定番のテキストらしい。
80 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 12:19:25 ] >>79 > SICPはSchemeの入門にはいいけど、簡単すぎるし、ちょっと古い。 はあ?そもそもschemeの入門書じゃないし。SICPは、プログラミングとは何か を学ぶために学部1年生が一番最初に取るコース用の教科書なので簡単なのは 当然。 > 極めたい人にはEOPL(Essensials Of Programming Languages)の方がオススメ。 はあ?SICPとはまるで内容が違うんですけど。こっちはプログラミング言語の 学部向け入門用教科書。そもそも定番ってほど有名じゃないし。同じトピック ならSebestaのConceptsの方がずっと有名(すでに第六版になってるし)。 底の浅い知ったかは止めようね。
81 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 16:10:00 ] どっちもよく知らないんだけど、 (1) プログラミングとは何かを学ぶために学部1年生が一番最初に取るコース用の教科書 (2) プログラミング言語の学部向け入門用教科書 この二つの違いはどのあたりなの? (1)はプログラミングで、(2)はプログラミング言語だから(1) ⊇ (2)ということ?
82 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 17:28:34 ] >>81 (1) は一般向け (2) は専門家向け
83 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 17:59:11 ] つまり内容は同じだがレベルが違う
84 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 18:07:01 ] カラダは男でもココロは女なの
85 名前:デフォルトの名無しさん mailto:sage [2005/04/16(土) 19:14:04 ] 確かにEssentials〜はSICPに近いね。Wandが参加してるし。 Concepts〜はimperativeな言語中心で、上の二者をhigher orderとするならfirst orderという感じ。
86 名前:デフォルトの名無しさん mailto:sage [2005/04/17(日) 13:04:13 ] >>81 (1)はプログラミング未経験者が取るもので、計算機はどういう動作をするか、 アルゴリズムとは何か、プログラムを書いて問題を解くというのはどうい うことなのか、を理解するのが中心 (2)はプログラミングはどれかの言語で一通り経験していて、さらに各種言語 の設計の背景にある理論や、言語処理系の実装の詳細について勉強する
87 名前:デフォルトの名無しさん mailto:sage [2005/04/17(日) 15:26:20 ] ここには>>80 が何人いるんだ?
88 名前:デフォルトの名無しさん mailto:sage [2005/04/17(日) 15:32:57 ] ここは質問された人に限らずみんなで答えるインターネットです
89 名前:デフォルトの名無しさん [2005/04/17(日) 15:39:02 ] SICPとEOPLはまるで内容が違うなんて誰の台詞だよ。 けっこう似てるだろ実際。
90 名前:デフォルトの名無しさん [2005/04/27(水) 23:48:30 ] たしかに,CPSでインタプリタ作るってところは似てる.
91 名前:デフォルトの名無しさん mailto:sage [2005/04/27(水) 23:49:57 ] 果てしなくどうでもいいネタだな
92 名前:デフォルトの名無しさん [2005/05/12(木) 23:22:59 ] 仕方ないんです。 Scheme使いは情報系の言語ヲタばかりですから。
93 名前:デフォルトの名無しさん mailto:sage [2005/05/26(木) 04:51:08 ] なんか止まってますね・・・ このビデオ見ながらがんばります.今1bを見終わりました. swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/
94 名前:デフォルトの名無しさん [2005/05/28(土) 04:06:27 ] はたして4章以降の演習問題ってみんなどのくらいとけてる?
95 名前:デフォルトの名無しさん [2005/05/28(土) 04:24:47 ] でいまからよむばあいは SICPとEOPLとどっちがいいんだ?
96 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 06:10:03 ] 情報量とそれへのアクセシビリティを考えるとSICPなんじゃないでしょうか?
97 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 14:03:08 ] ^^
98 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 14:16:14 ] 今 SICP を読んでいる初心者です。2ch だけが頼りです。 >>1 - >>97 さんたちの議論をよく理解できるようにがん ばっています。私にはまだまだ難しいですが・・・ (^^; >SICP
99 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 14:17:53 ] >>98 がんばってるのは感心だが、2chだけを頼りにするのはお勧めしないぞ。w
100 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 14:31:29 ] >>95 選ぶ必要などない 両方回し読み
101 名前:デフォルトの名無しさん mailto:sage [2005/05/28(土) 15:14:14 ] 2ch以外に頼るところがないのだ
102 名前:93 mailto:sage [2005/05/28(土) 17:21:22 ] >>98 私も今月くらいから始めた初心者です. 他にもリソースはいっぱいあるので参考にしてみてはいかがですか? >>1 >>2 あたりにあるリンクをたどってみるといいかもしれません. 私は20年近く前のビデオをかなり頼りにしてますw 服装がフルスギスwww
103 名前:デフォルトの名無しさん [2005/05/30(月) 02:28:00 ] >>95 2つかって同時に読め。そっちのほうがひとつだけ読むより早く読める。
104 名前:93 mailto:sage [2005/05/31(火) 02:15:35 ] こんなのみつけた. icampus.mit.edu/xTutor/content/?more6001
105 名前:デフォルトの名無しさん mailto:sage [2005/05/31(火) 15:27:04 ] >>104 SICP(course 6.001)がオンラインコースで受講できました(^^ 高卒のうえ独学で勉強していますのでとても興味深いです。 ありがとうございました m(_ _)m
106 名前:93 mailto:sage [2005/06/02(木) 22:29:47 ] >>105 参考になってよかったです. >>93 のビデオも熱気があっていいですよ (´・ω・`)
107 名前:93 mailto:sage [2005/06/12(日) 12:22:37 ] 問題1.6なんですが, 「new-ifが特殊形式じゃなくて普通の手続きだからパラメータが評価されてしまうため無限ループになる」 というのは自明のことなんでしょうか? それともSchemeを知ってないと分からない問題なんでしょうか?
108 名前:デフォルトの名無しさん mailto:sage [2005/06/12(日) 21:09:28 ] そこまでの文章を読んでいるなら自明に決まっている。
109 名前:デフォルトの名無しさん mailto:sage [2005/06/15(水) 04:15:20 ] zero = λfx.x add-1 = λnfx.f (n f x) で、 add-1 zero = (λnfx. f (n f x)) λfx.x = λfx. f ((λfx.x) f x) = λfx. f ((λx.x) x) = λfx. f x add-1 (add-1 zero) = (λnfx. f (n f x)) λfx.f x = λfx. f ((λfx.f x) f x) = λfx. f ((λx.f x) x) = λfx. f (f x) ・・・ ってことか Lisp系は読みにくくて、書き直さんとさっぱりだ
110 名前:93 mailto:sage [2005/06/18(土) 05:15:12 ] >> 108 書いてありました.つまらないことを質問して失礼いたしました. 以下引用 1.1.6より To evaluate an if expression, the interpreter starts by evaluating the <predicate> part of the expression. If the <predicate> evaluates to a true value, the interpreter then evaluates the <consequent> and returns its value. Otherwise it evaluates the <alternative> and returns its value.
111 名前:デフォルトの名無しさん mailto:sage [2005/07/06(水) 09:42:57 ] この本、1章から簡単な数学の話が出てきてちょっと戸惑いまっす。 高校時代に真面目に数学やらなかった文系にはちとつらいっす。 ただ逆にこれを機会に初歩的な数学を勉強始めるには丁度いいのかな。
112 名前:挫折禁止 mailto:sage [2005/07/06(水) 10:57:13 ] 数学を避けたまま終わっていい、 そういう人、読み方には全然向いてない本。 これを機会にやってみようという人には面白いかも。挫折しなければ。
113 名前:111 mailto:sage [2005/07/06(水) 11:33:34 ] >>112 逆に数学的概念がLISPとして表現されるとちょっと分りやすいかな、とも思った。 SICPは数学の入門書でもあるのかな。 LISPを通して数学を学ぶぐらいのつもりじゃないと厳しそうだね、確かに。
114 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 10:47:51 ] Lispの元になっているラムダ記法は、初期の論理学で、 数学を厳密に記述、理解するために始められた研究に端を発してます。 (逆)ポーランド記法なんかがそのずっと初期に考えられた。 これまでの数学的記述を厳密に定義仕様という試みが初期にあったので。
115 名前:デフォルトの名無しさん [2005/09/04(日) 21:26:59 ] 手元に置いておきたかったので, 貧乏学生なのにペーパーバック版を購入してしまいました. 2ヶ月近く誰も来ないのは, Schemeが人気ないから? SICP自体が有名じゃないとか?
116 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 22:01:26 ] なことない 俺も今読んでるし,本屋行ってもなくなったと思ったらすぐ補充されてる
117 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 22:01:39 ] >>115 だって典型的な入門用教科書だもんな。特に騒ぐほどのこともないだろ。 内容も良書ではあるけれど、特別すごい訳じゃないし。 大学や大学院できちんと勉強してなかった奴が、どっかから聞きかじってSICP読んで、 自分のレベルの低さを棚に上げて絶賛する、っていうケースしか見たことないな。 米国で計算機科学勉強した人なら、当然マスターしてる訳だし。
118 名前:デフォルトの名無しさん mailto:sage [2005/09/05(月) 12:10:40 ] 日本の大学でも、情工情科なら一二回生のうちに たいがいSICP使った単位があるよねえ。
119 名前:デフォルトの名無しさん mailto:sage [2005/09/05(月) 15:17:55 ] 日本でも米国でも大学はピンキリだから・・・
120 名前:デフォルトの名無しさん mailto:sage [2005/09/05(月) 16:03:58 ] >>117 >大学や大学院できちんと勉強してなかった奴が、どっかから聞きかじってSICP読んで orz 大学が電子工学だったので,確かに情報系のカリキュラムはお粗末でした.
121 名前:デフォルトの名無しさん mailto:sage [2005/09/08(木) 23:07:56 ] >>117 > 大学や大学院できちんと勉強してなかった奴が、どっかから聞きかじってSICP読んで、 > 自分のレベルの低さを棚に上げて絶賛する、っていうケースしか見たことないな。 皮肉屋さんだねえ
122 名前:デフォルトの名無しさん mailto:sage [2005/09/08(木) 23:28:47 ] 俺も大学は物理家だったから正規の教育はFORTLANのみ。 もちろん趣味でそれ以前にCとかはやってたけどね。 で、就職後、趣味の継続でbitとか読んでたら何となくLISPに興味を持った。 てなパターンは多いんじゃないかな。 今はSICPで覚えた「プログラミング」をperlで実装してたりする。 #本職はソフトじゃないです
123 名前:デフォルトの名無しさん [2005/09/09(金) 03:59:05 ] >>118 www-mitpress.mit.edu/sicp/adopt-list.html をみると日本は東大だけってなってるけど・・・
124 名前:デフォルトの名無しさん [2005/09/09(金) 04:01:48 ] こっちのほうみると3つある www.schemers.com/schools.htm けどこれで「たいがい」とは言えないんじゃない?l
125 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 05:46:54 ] 東工大の情工も使ってるね
126 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 15:44:53 ] 京都でも使ってるっしょ?
127 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 15:52:15 ] あのなあ、SICP使ってるなんて、いまどき何の自慢にもならないよ。 すげー古い教科書なんだし。
128 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 16:06:27 ] 古いて
129 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 20:15:01 ] 日本のゆとり教育の教科書よりマシ
130 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 22:06:57 ] 古びるような内容かよ
131 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 22:22:03 ] インド人が使ってる教科書なんて、きっとすごいんだろうな
132 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 22:24:22 ] >>131 すごいよ。
133 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 22:40:19 ] >>130 > 古びるような内容かよ まったく古びないと思ったときから進歩に取り残されてるの、気づかないんだよね。 10年近く前の教科書なんて米国じゃ古すぎでふつう使わん。 アルゴリズムの定番のCLRだって初版が出てから10年目で第二版を出したし、 SICPもだんだん使われなくなり始めてるし。ま、またそのうちに改版すると思うけど。 >>131 彼らは基本的に欧米で出版される最新の教科書を使ってるからね。 経済的に厳しい国用の安価なペーパーバックなんで買いやすいし。
134 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 22:43:22 ] >>133 > アルゴリズムの定番のCLRだって初版が出てから10年目で第二版を出したし、 目的が全然違うだろ。
135 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 23:08:11 ] >>134 「目的」って?
136 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 23:10:12 ] >>131 インド人を右に
137 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 00:03:48 ] たとえば,「ファインマン物理学」は古びてる? 新しいトピックが載っていないからって意味が無くなるわけでもないでしょ
138 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 02:15:16 ] 実家に置いてあったファインマン物理学、親が勝手に処分してた(涙) 激しく関係ないのでsage。 古くなったところでそのまま忘れ去られてしまうものと、その時々で価値を保ち続ける ものとの区別がつかない人は不幸なり。漏れの場合は忘れ去られるどころか捨て去られた わけですが orz
139 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 08:13:42 ] > 新しいトピックが載っていないからって意味が無くなるわけでもないでしょ まあ新しくてより良い教科書があるのに、翻訳されてないっていうだけで SICPに固執したいのなら、それはそれでいいんじゃない?
140 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 11:23:54 ] 確かに「これはまだ新しい問題で、現在盛んに研究中の領域である」 みたいな文言はちょくちょく出てきてた気はしますしね。 根本的に変わるものではないにしても、その辺のリファインはされて然るべきでしょうね。 まあ教科書なんだからその辺の進展についてある程度は 教師がフォローするのが本来の姿なんでしょうけど。 さておき、煽りじゃなく本当に訊きたいのですが、 >>139 さんの言う新しくてより良い教科書でお薦めは何でしょうか。 ちょうど SICP 読むくらいの人間に対して丁度いい物で何かあったらご教示頂けると幸いです。
141 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 22:15:20 ] ワクワク
142 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 22:33:04 ] + + ∧_∧ + (0゚・∀・) ワクワクテカテカ (0゚∪ ∪ + と__)__) +
143 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/11(日) 07:14:44 ] テカテカしてるってことは 磨耗してるってことだよ
144 名前:名無しさん@そうだ選挙に行こう [2005/09/11(日) 16:31:32 ] 待ちくたびれて擦り切れたんだよ >>139 まだー?
145 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/11(日) 16:38:22 ] >>144 今執筆中かも
146 名前:140 mailto:sage [2005/09/12(月) 01:38:27 ] じゃあ >>139 さんを待つ間に自分で貼ってみるテスト。 ぱっとブックマークを覗いてそれっぽいのを。Krishnamurthi 先生のやつ。 Programming Languages: Application and Interpretation www.cs.brown.edu/%7Esk/Publications/Books/ProgLangs/ How to Design Programs www.htdp.org/2003-09-26/Book/ んー、でも前者は SICP 読み終わってからが対象っぽいんですよね。 四〜五章あたりとややかぶってる感じかなあ。 最後のは逆に三章あたりまでが範囲だし、Scheme の教科書という側面も強いですね。 入門から簡単なコンパイラまで、ってのは結構無いんじゃないかなあ。 『アルゴリズム+データ構造=プログラム』が確かそうだったけど、 古さでは SICP すら比じゃないですし。 というわけで >>139 さんを引き続きお待ちします。 脇道からこっちの方に迷い込んだくちでして、基礎をもっと固めたいなあと思っているので。
147 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 01:48:18 ] >>146 前者はプログラミング言語偏重だね。SICPと比べると。 というかプログラミング言語の本だよね。
148 名前:デフォルトの名無しさん [2005/09/12(月) 02:33:17 ] なぜsageる?
149 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 09:43:52 ] 140=粘着荒らし
150 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 11:30:56 ] 今は高木の解析概論よりいい教科書ってあるの?
151 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 21:47:31 ] >>149 = >>139