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
692 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:05:53 ] Mocking birdって英語やさしいですか?
693 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:36:19 ] >>691 Schemeを勉強するならそうだろうが SICPはあくまでScheme使ってコンピュータ科学の勉強をするのが目的なんだから 独習だけでも十分でしょ。
694 名前:デフォルトの名無しさん [2008/01/27(日) 19:55:19 ] >>692 やさしいけど別にSchemeの本じゃないよ。関係がないともいえないのも後半だけだと思うなあ。
695 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:57:35 ] >>693 不十分
696 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:58:44 ] >>694 そこの浅いコメントはやめとけ。
697 名前:デフォルトの名無しさん [2008/01/27(日) 20:02:40 ] あら、そいつは失礼。
698 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:15:37 ] >>693 まあどうでもいいんじゃね? SICPだけ読んで理解出来る奴もいるし、 独習読んで取り組みやすくなる奴だっているし、 Little読んでわかりやすくなったって奴もいるだろう。
699 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:15:50 ] なぐったね。とうさんにもぶたれたことないのにw
700 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:04:59 ] Mocking birdを読むと数学的仕様、Partial evaluation、二村射影などの有用性がわかるようになると思う。 大学入試程度の英語が出来るなら1ページに1回辞書をひくか程度のレベル。一週間もあれば読めるでしょう。
701 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:16:06 ] Shiroさんのとこ読むとYとかBとかいうコンビネータが出てくるけど、あれはSchemeじゃないのか?
702 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:22:27 ] >>700 大学入試レベルなんてピンキリですよw
703 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:23:54 ] TOEIC700点レベルだな
704 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:48:45 ] >>703 TOEFLじゃねぇの?おまえ程度低いなw
705 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:58:15 ] >>704 にはSchemeより日本語ですね。
706 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:59:15 ] 受験英語レベル⇒TOEIC700(東大に入れる程度)⇒TOEFL(540,207,70)
707 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:03:18 ] TOEICと受験では求められるものが違うんじゃね。
708 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:08:52 ] 英語がどれだけ出来るかは対して変わらない
709 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:09:26 ] >>700-706 受験板逝けYO!
710 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:05:12 ] 4章以降って、コンパイラとかあんま興味ない人間でも読んどいたほうがいいかな? 3章までは一般的なプログラム設計に通じる話で、結構おもしろかったけど、 4章からSchemeコンパイラの作り方みたいになってなんかつまんなくなってきた。
711 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:07:35 ] コンパイラ様のお世話になってるなら、興味ないなんて言っちゃ駄目だよ。 あいつの機嫌を損ねるとえらいことになるぞ。
712 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:10:52 ] まあ興味ないというよりは、自分のような凡人プログラマが 深遠なるコンパイラ様の奥深くまで入っていくのが 恐れ多いというか、めんどくさいというか。
713 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:10:54 ] >>710 流行りのDSLへまっしぐらだぜ!
714 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:11:57 ] まあ向いてない人は無理にやることない。 やらなくても死ぬことはない。
715 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:18:47 ] じゃあ、将来オレオレ言語を作りたくなったら読んでみるよ。回答サンクス
716 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:24:10 ] >>710 参考までに教えて欲しいのですが、問題はどれくらい解いたかのでしょうか?
717 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:30:43 ] >>716 いや、そこまで真面目に読んでるわけじゃないから、 面白そうなのをを10%くらいしかやってないよw
718 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 04:15:13 ] 4章こそ面白いのに・・・ 確かに最初の方は単純な設計の話ですが、後半は様々な設計が見られて普通に面白いですよ 例えば遅延評価は実装レベルではどう組むか、非決定計算はどう組むかなど知らなかったらかなりためになりますよ
719 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 10:33:39 ] >>718 うーむ、そうですか。 スタートが評価規則の羅列であまり興味もてなかったんですが、 もう少し頑張ってみようかな。
720 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 10:55:53 ] 猫に小判
721 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 12:21:00 ] しかし小判を追い求めて手中にした猫と求めない猫とでは、そこには果たして大きな隔たりがあるのでは
722 名前:デフォルトの名無しさん [2008/02/01(金) 13:52:50 ] >>721 猫にとって必要なのは、小判だろうか。 それとも、いきのいいねずみだろうか。
723 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:39:27 ] いいえ、キャットフードです。
724 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:51:16 ] そもそも猫は小判を求めない。 くれてやってもありがたみもわからなければ ありがたがりもしない。
725 名前:デフォルトの名無しさん [2008/02/01(金) 19:47:17 ] >>724 馬鹿だな。 小判を見せびらかすことで、松坂牛で釣りに来るのを待ってるんだよ。
726 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 21:42:55 ] なんだ、ケフィアじゃないのか。
727 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:20:03 ] バカだな。 正しくは、 「ねこに、こんばんは。」 だ。
728 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 02:25:21 ] Dr.「Hmmm,,,ねこはわかりました。 それでどこが悪いのですか?」
729 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 22:12:14 ] けど、ちょっと変な猫が小判を欲しい気分になったら? その時与えてやるのと与えてやらないのとどちらが正解? 俺は猫が望むのなら与えてやるべきだと思うな。 それがあるからこそ、人間はここまで成長できたはず。
730 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:45:19 ] 定理1. 猫は小判を欲しがらない。 定理2. 猫は小判の価値を理解しない。 現象:ここに小判を欲しがってる「猫」が居る。 判定:「猫」は猫のように見えて実は猫では無い。 何か別の生き物である。(猫の皮を被った宇宙人とかw)
731 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:49:02 ] 「猫であること」と「宇宙人であること」は直交した概念なので特に矛盾は無いのでは?
732 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:49:48 ] 君は何を言っとるんだね
733 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:37:52 ] >定理1. 猫は小判を欲しがらない。 定理というからには証明できるのか?って所が問題だろう 「(全ての)猫が(全ての)小判を欲しがらない」ということを
734 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:44:23 ] いい加減にしてくれ。ここはSICPスレです。よそでどうぞ
735 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:02:27 ] 今は特定の猫が特定の小判を欲しがらない場合について議論しているのでは?
736 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 06:57:07 ] むしろブドウは酸っぱかったかどうか疑問だと思うんだ
737 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:05:16 ] SICP を理解しても、使わない・応用しないじゃ仕方ない。 ここで考えるべきは、ネコが如何に小判を有効活用するかということだ。 爪研ぎとか?
738 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:42:40 ] いったん理解したらむしろ使わないでいる事の方が難しいだろう。 プログラミングに関する基本的な考え方やインスピレーションを 与えてくれるのだから。 「使う」って言う意味が意識的な応用に限られると言うなら別だが。
739 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:31:05 ] スレ違いだからあんまり書かないけど 「これを学ぶと私にとってどんな(具体的)利益があるのだろう?」 と常に悩んでるような人は内田 樹の「下流志向」を読むと良いと思う。 一言で言うと「学ぶ事の価値はそれを学ぶ前には決して理解できない」 って事。
740 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:53:34 ] >>738 人なら当然使うでしょ。今の問題はネコだから。
741 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:25:32 ] 「ネコ」って言うのは「価値を理解できない人」の比喩だと思ってたが?
742 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:12:49 ] 721だけど、あんなこと言わなければ良かったな・・・ ここで言う猫とは719の事で、小判は4章の内容を理解するという事ね ようは仮に719が4章の内容を十分に使えるだけの力がなかったとしても、理解しているのとそうでないのでは違いがあるでしょって話ね だから猫に小判なんていう冷たい言い方やめようぜって話ね 頼むから下らない議論はやめてくれ >>738 ,739には賛成 SICPはプログラミングの基礎について教えてくれるから、何で必要かと聞かれれば土台を固めるために必要としかいえない
743 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:41:29 ] >736 もちろんブドウはキツネが言うほどには酸っぱく無かったのさ。 (酸っぱいブドウの機制)
744 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 05:14:17 ] dankogaiのところにコメント書いたばかは死ねよ
745 名前:デフォルトの名無しさん [2008/02/05(火) 17:42:28 ] >730 その判定は、誤った研究姿勢の帰結。 現象を精査しつつ、猫が小判を欲しがらないという、 前提が誤りであった可能性を吟味する必要がある。
746 名前:デフォルトの名無しさん [2008/02/05(火) 18:35:12 ] 某所で紹介してくれた方、ありがとうございます。 早速読んでみます。
747 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:02:38 ] NGワード推奨:猫、小判
748 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:15:44 ] denotational semantics: the scott-strachy approach to the programming language theory
749 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:26:09 ] 名無しのネコを再帰的に真似るネココンビネータの試みと その意味論を議論しているスレはここですか?
750 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:39:47 ] 再帰的に定義されたネコ関数の「意味」は、要するに (cat (cat (cat (cat ... (cat ┴) ...)))) を無限に連ねた極限である。 ネコ関数を無限に適用するには、たとえば (lambda (f) ((lambda (x) (f (x x))) (lambda (x) (f (x x))))) というコンビネータを cat に適用すればよい。 そして上記のコンビネータを別の観点から解釈すると、 ああ、そうか、これは任意の関数の不動点を求める関数になってるんだ! これこそが Y Combinator。 我らの誇り、我らの希望、常に我らを導き、我らの上に燦然と輝く光!
751 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:46:47 ] おまえら頭良すぎて紙一重だな
752 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:49:13 ] まるでイルミネイタスの一節を見ているようだ…
753 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:05:31 ] シュレーディンガーのネコにコバンを与えたら 生きていると同時に死んでいるわけです
754 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:06:39 ] 揺らぐのは俺の決断だけでいいよ
755 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:13:24 ] うちのネコは歩いていて時々ピタッと止まるんだけど 何事もなかったように歩き続ける。 call/ccってやつだよね。 それからネズミとかスズメとか取ると、しばらくそれをくわえて歩いてから食う。 遅延評価だな。
756 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:15:35 ] いやそれは違
757 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:16:03 ] evalネコに小判をやるとエラーになる。
758 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:32:03 ] 755はちょっと違うな 遅延評価をしない猫は、獲物を捕った時点でそれがねずみならば、そのねずみを口に持っていくまでの間に小判にすり替えられても気づかず口に入れてしまう 一方遅延評価を行う猫は、獲物を捕ってそれが正に口に入らんとする時点でねずみかどうかを確かめてから口に入れる こういうと一見、遅延評価を行う猫の方が利口に見えるが、例えばねずみを再帰的に食べる場合、つまり何口かに分けてねずみを食べる場合、 前者は最初にねずみと確認すれば後は確認せずにパクパクと食べ続けるが、後者は遅延評価するがゆえんに一口目二口目と口に入れるごとにそれがねずみであるかを確認する 現実問題として食べている間にねずみが別の何かにすり替わることはまずありえなく、仮に食べるのに十口程かかるねずみを手に入れた場合、後者は十倍無駄な動作をする事になる しかし、近くに、他の猫の食べているねずみを小判にすり替える事を生業とする猫がいる事も一生に一度はあるかもしれない。そういった時は遅延評価をして食べるのが危機管理というものだ とはいえ、一生に一度あるかどうかも分からない時のために毎回遅延評価するのはあまりに無駄が多いと言える こういった遅延評価の無駄を削る方法がメモ化(memoization)である つまり、そういったいじわるな猫が周囲にいない状況では、今食べているこのねずみは今後ねずみであるか確認しなくともねずみであり続けると言う事を記憶するのである そうすれば今食べているものがねずみであるかどうかを確認するのにいちいち匂いや形から考えなくとも、記憶からそれがねずみであると言う事実を持ってくるだけで済む それはやはり遅延評価をしないよりかは幾分ロスがあるかもしれないが、そのロスは記憶にアクセスするだけの短時間であるし、近くにいじわるな猫がいても対処できる臨機応変さも兼ね備えている非常に優秀な猫と言える 目の前の猫が遅延評価をする猫であるかどうかを確かめるには、ねずみを食べている途中にそれを小判にさしかえてやればよい。そこで食べるのを中止したのならばそれは遅延評価をする猫である
759 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 03:25:25 ] 猫にはマタタビ、まで読んだ
760 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 04:08:50 ] 「猫に小判」の話が頭の良いアホ(smart idiots)どもを引き寄せたようだな。
761 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 05:39:22 ] えらく偉そうだな
762 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:18:15 ] >>748 の路線で、もっと新しくておすすめの本ってありますか?
763 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:26:56 ] 新しい順 Hanne Riis Nielson and Flemming Nielson Semantics with Applications: An Appetizer Carl A. Gunter Semantics of Programming Languages: Structures and Techniques L. Allison A Practical Introduction to Denotational Semantics お勧めはGunter→Nielsonの順で読むこと。
764 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:26:06 ] SICPを読んで遅延評価が並列処理と密接な関連があるということがよく分かりました。 これって、具体的に応用された例ってあるんでしょうか?まだ研究レベルでしょうか。
765 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:38:52 ] 研究段階の事を大学初年度用教科書で教えるだろうか。 実用例は知らないんで偉そうに言って悪いが。
766 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:25:48 ] >>758 わかった。冷凍ギョーザを食べるときは遅延評価必須だね! ありがとう、試してみるよ。
767 名前:764 mailto:sage [2008/02/07(木) 09:32:43 ] >>765 確かにそうですね。ただ、ちょっと調べただけですけど、遅延評価を並列処理に具体的に 結びつけた事例のドキュメントが見当たらなかったので。論文なんかだとあるのかなぁと 思ったのです。 面白い記事とかありましたら教えていただけると嬉しいです。
768 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:11:14 ] >>767 > 遅延評価を並列処理に具体的に結びつけた というのはどういう意味で言っているの?
769 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:59:57 ] >>763 ご親切にどうもありがとうございました! 勉強します。
770 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 14:36:23 ] 当たり前すぎて、わざわざ事例として紹介されてないだけでは?>遅延評価で並列処理
771 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 14:42:27 ] 遅延評価そのものより、参照透明性が重要。 参照透明性を壊さないで無限リストのようなデータ構造をうまく扱うために、 遅延評価は有効。 ってことだと思う。
772 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:21:24 ] 遅延評価ってのは、 1. 式を持ち運べる形にする 2. その式を発火する 3. 式の値を得る という式評価の過程で、必要になってから2.を行えるように、 1.を行っておくってタイプの評価器。 並列だと、必要になってから発火するんじゃなくて、 いつかどこかで発火された式の値を得るために同期する。 値そのものを運ぶんじゃなくて、チャンネルを持ち運んだり。 そこでモナドが登場する。 関数型だと式しかないからこういう感じ。すごくシンプル。
773 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:24:05 ] 布教なら余所でやれ
774 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:33:07 ] しかし、いつも関数型言語の概要を聞いて思うのは SICPの例のようにATMとかをモデル化する場合どうやって表現するんだ? 本質的にステートレスでないものの扱いがよくわからん。
775 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:41:49 ] 3章からは、ステートレスじゃないじゃん 参照透明性が失われているので厳密にはもはや関数型プログラミングではない その参照透明性が失われる事でどういったメリット・デメリットがあるかっていうのがその話でしょ ATMをステートレスは不可能。時の概念が入ってるから。
776 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:29:00 ] モナド付近をやるならまず型概念をしっかりさせたほうがいいんじゃないですか。 型持ち上げとかわかんないと意味わかんないところが多々ある気がするのですが。 淡白にそのまま自分の理解を晒してみますが モナド<T,μ,η>って T:型 μ:2型を1型にできる変換、ただし組み合わせて3型を1型にできないといけない η:1型を2型にできる変換 の組という意味しかない気がする。
777 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:33:41 ] μの具体例としてはconcatMap idすなわちconcatで、 concat [[1 2] [3 4]] -> [1 2 3 4] [[1 2] [3 4]]はList Listなので2型 [1 2 3 4]はListなので1型
778 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:53:52 ] それで、対象を3型から1型に変換できるから トリプル導来函手と言うのだと思う。と、補足。
779 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:25:52 ] >>776-778 >>773
780 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:13:00 ] Schemeネコvsモナーだな?
781 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:09:01 ] とりあえず、SICP買ってきた。満足した。
782 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:10:48 ] 日本語訳もそろそろWebにあげてくれよ。
783 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:21:24 ] >>781 原書も買えよ。
784 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:33:56 ] >>783 原著は、ネットで見れるではないか。 4800円は辛かった・・・
785 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:39:41 ] 良い原書は黙ってても出るが、訳書は売れないと今後出なくなっちゃうよ。 だから、ちゃんと買ってあげましょう。w
786 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:54:55 ] その理屈だと、いい訳書は売れ、悪い訳書は売れないというフィードバックをかけないと。
787 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 19:56:44 ] 海外の名著を輪読ついでに学部生に訳させて、教授名義の訳で出すってよくあるよね いや、SICPのことを言ってるわけじゃないよ
788 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 19:59:21 ] んで誤訳があってもチェックする事もなく出す…と 意味不明訳に何度引っかかった事か orz
789 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:09:56 ] てーかSICPのあの文章をひねりだす大学院生や助手って想像できねぇw
790 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:33:54 ] 教授だからと言って、翻訳の能力が優れているわけではない。
791 名前:デフォルトの名無しさん [2008/02/10(日) 21:07:38 ] またこの話題か 訳がひどいせいにして理解できない事を棚に上げる人も多々いるけどねぇ
792 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:10:13 ] そういう書込みはまだない。