【SICP】計算機プログ ..
[2ch|▼Menu]
2:デフォルトの名無しさん
05/02/02 21:19:03
『計算機プログラムの構造と解釈第二版』を読む
URLリンク(openspace.timedia.co.jp)

「計算機プログラムの構造と解釈 第二版」を読む会について
URLリンク(www.javaopen.org)

『計算機プログラムの構造と解釈 第二版』を読むメイリングリスト
URLリンク(www.sampou.org)

『計算機プログラムの構造と解釈 第二版』解答集(未完)
URLリンク(oss.timedia.co.jp)


3:デフォルトの名無しさん
05/02/02 21:19:57
関連スレ
人生ばくち打ち
スレリンク(tech板)

4:デフォルトの名無しさん
05/02/02 21:26:37
>>3
全然関連じゃないし…

この本、日本語訳が糞だっていうけどどの程度糞なんだろう。普通に読めるけど。

5:デフォルトの名無しさん
05/02/02 21:41:12
この本は濃いね
本当に恋

6:デフォルトの名無しさん
05/02/02 22:35:26
んなこたーない。本当に読んだのか?


7:デフォルトの名無しさん
05/02/02 23:00:23
>>4
漏れはむしろこの訳が好きだ。

8:デフォルトの名無しさん
05/02/02 23:37:58
英語でも十分わかりやすかったけどな。
変な用語に悩むより原文を読む方がよっぽどいいと思う。タダで見れるし。



9:デフォルトの名無しさん
05/02/03 00:08:20
問題2.6
対を手続きで表現することがそれほど驚きでなければ、
手続きを操作できる言語では、0と、1を足す演算を

(define zero (lambda (f) (lambda (x) x)))

(define (add-1 n)
(lambda (f) (lambda (x) (f ((n f) x)))))

と実装することで、(少なくとも非負の整数だけを問題とする限りは)
数を使わないで済ませることが出来ることを考えよう。
この表現は発明者Alonzo Churchに従い、Church数として知られている。

このへんよく分からん。そういういう風に自然数を定義するってことかな。

10:デフォルトの名無しさん
05/02/03 01:07:59
そう。


11:デフォルトの名無しさん
05/02/03 02:34:47
>>9
…なんか英語より読みにくい文だね、これ。

12:デフォルトの名無しさん
05/02/03 03:37:56
後半の方が面白いので、これから読む人はSchemeの言語をさらっと勉強して
前半は飛ばして後半に直接攻め込んでいいと思う。


13:デフォルトの名無しさん
05/02/03 03:40:07
以後訳ネタは激しくつまらないので禁止
訳に不満があるなら英語で嫁
もし次スレがあるなら、これをテンプレに追加しといてくれ

14:デフォルトの名無しさん
05/02/03 04:01:14
>>12
というと4章以降?

15:デフォルトの名無しさん
05/02/03 06:24:53
人によっては3章以降。環境フレームがわかってれば3章は飛ばしてok。


16:デフォルトの名無しさん
05/02/03 16:04:27
HHKといいThe Art of Computer Programmingといいこの本といい…
身の回りに和田英一がたくさん…

(((( ;゚Д゚))))

17:デフォルトの名無しさん
05/02/03 16:25:13
HHKB の人も和田サンだっけ?

18:デフォルトの名無しさん
05/02/03 19:46:02
そして毎月送られてくる情処。


19:デフォルトの名無しさん
05/02/04 09:38:30
URLリンク(oss.timedia.co.jp)
データ主導とメッセージパッシングがどう違うのかわからん。

両方とも、型の追加はしやすく演算の追加は面倒、という特性を持っているように思えるんだが。
データ主導で書いても、後から演算を追加したくなったら各install手続きごとにせっせと足さなきゃ
いけないじゃん。でもこの表だとそうなってないし、sicp本文でもそう書いてない。

20:デフォルトの名無しさん
05/02/04 12:39:36
いずれにせよ Δ演算数×型数 or 演算数×Δ型数 の分のコードは必要でしょ。
問題はそれがどういう変化かということじゃない?

データ主導だとinstall-*に追加した部分をevalればシステムをリスタートしなくて
いいし、そもそも型ごとのパッケージであるinstall-*に全ての演算を叩き込む
必要も必ずしもなくて、演算ごとにパッケージを構成すればコード追加だけで済むよ。
同じような処理をするときに関数も流用しやすいし。




21:デフォルトの名無しさん
05/02/05 00:15:03
なるほど。演算ごとにパッケージを構成すればいいのか。
データ主導がテーブルを「列」で処理するのに対し、メッセージパッシングは「行」で処理
するとか書いておいて、本文中の例だと両方ともpolarとrectangularで分けていたから混乱してたわ。


22:デフォルトの名無しさん
05/02/05 04:33:28
URLリンク(www.sampou.org)
つまりこの図にもある通り、
データ主導>メッセージパッシング
ってことか。

23:デフォルトの名無しさん
05/02/07 23:53:59
3.1〜3.3まで読んだ。
3.3.3までは>>15のいう通りで、わかってれば読む必要はない。

3.3.4は簡単な論理回路シミュレータ。3.3.5の前座という感じ。これも飛ばして
もいいかな。なんでdelayの値がand,or,notで違える必要があるのか謎。

3.3.5は制約伝播システム。
x + y = z みたいな関係(=制約)で任意の2変数の値が決まったときに残りの変数が
決まるような仕組。知らなかったので面白かった。

Scheme言語はわかってもSchemeで実際にプログラムを書くときの感覚が
いまひとつ掴めてなかった(CやJava系統なら綺麗なものが書ける経験と自信は
あるんだけど)ので、それがなんとなくわかるのもよかった。

英語版を読んでいるので邦訳の用語とは違うかもしれませんが悪しからず。


24:デフォルトの名無しさん
05/02/21 17:09:09
3.5まで読んだのでage。


25:デフォルトの名無しさん
05/02/21 19:01:00
別に報告しなくていいよ

26:デフォルトの名無しさん
05/02/21 20:05:55
過疎化してるし、してもいいんじゃない。
嫌なら >>25 がネタを出せば。


27:デフォルトの名無しさん
05/02/24 12:52:07
問題2.20
一つかそれを超える個数の整数をとり、
先頭と同じ偶奇性を持つ引数のリストを返す手続きsame-parityを書け。

で可変個の引数の話が出てくるけど、こういうときの再帰呼び出しってどうするのが普通なんだろう…
一応consでつないでリストにしてそれにapplyで適用するのを書いてみたんだけどこんな感じで良い?

(define same-parity
(lambda (factor . ls)
(if (null? ls)
'()
(if (check factor (car ls))
(cons (car ls) (apply same-parity (cons factor (cdr ls))))
(apply same-parity (cons factor (cdr ls)))))))

checkは偶奇性を判定する手続き。

28:デフォルトの名無しさん
05/02/24 12:55:17
うんこ

29:デフォルトの名無しさん
05/02/24 13:23:11
再帰の練習? 普通はfilter使って書いちゃうと思うけど。
filterはSRFI-1にあるから処理系が用意しているだろうし、
なくても簡単に書けるよね。

(define (same-parity beg . args)
(let ((parity (odd? beg)))
(cons beg
(filter (lambda (x) (eq? parity (odd? x))) args))))

(define (filter pred lst)
(let loop ((lst lst) (r '()))
(cond ((null? lst) (reverse r))
((pred (car lst)) (loop (cdr lst) (cons (car lst) r)))
(else (loop (cdr lst) r)))))


30:(define (´∀`) 'マターリ)
05/02/24 14:22:40
(define (same-parity beg . args)
(cons beg (filter (if (odd? beg) odd? even?) args)))

31:デフォルトの名無しさん
05/02/24 15:00:38
おっと、これは一本とられましたな。


32:(define (´∀`) 'マターリ)
05/02/24 15:32:36
(define (same-parity beg . args)
(cond ((null? args) (list beg))
((eq? (odd? beg) (odd? (car args)))
(apply append (list beg (car args)) (map (lambda (x) (cdr (same-parity beg x))) (cdr args))))
(else (apply same-parity beg (cdr args)))))

33:デフォルトの名無しさん
05/02/24 15:39:48
毎回毎回引数フレームに積むの? 効率悪そうだなあ。


34:デフォルトの名無しさん
05/02/24 18:13:05
>>29
あーなるほどねー便利。

SRFIとかも調べてみようと思った…orz

35:デフォルトの名無しさん
05/03/02 23:20:57
>>13
自分で訳すってのはどう?

36:デフォルトの名無しさん
05/03/03 01:30:01
英語で嫁とか言う奴は自分で訳して貼り付けてみろ
…ザクしてやるよ


37:デフォルトの名無しさん
05/03/03 02:33:25
以後会話はSchemeの文法ののっとって行うこと。日本語禁止。

38:デフォルトの名無しさん
05/03/04 00:27:10
(((;゚Д゚)) ガクガクブルブル)

39:デフォルトの名無しさん
05/03/04 19:38:53
>>36
むしろ英語の本って読めるもんなんだと感動する本
ハリポタは難しくて読めないけど

40:デフォルトの名無しさん
05/03/04 22:04:48
柔らかい表現を好む媒体ほど、ネイティブ以外には難しくなるからねえ。
硬い表現の多い専門書は読みやすいやね。

# 硬い表現だろうが、彷徨えるオランダ人(誰)の書いた英語は読みづらいが。

41:デフォルトの名無しさん
05/03/05 21:14:54
>>40 たしかに。operandとかpretty printとかそのまま日本語で使われている技術用語も多いというのもあるかな

Schemeってオブジェクト指向なんかよりもよっぽど洗練されてて知的だね
大学の教養科目でやってもいいんじゃないかと思う。
瑣末な技術的詳細に触れないで入門できるんじゃない?


42:デフォルトの名無しさん
05/03/05 21:29:36
pretty printって何?
かわいく印刷するってこと?

>Schemeってオブジェクト指向なんかよりもよっぽど洗練されてて知的だね
オブジェクト指向のどこが洗練されてなくて、知的でもないのか詳しく教えて。

43:デフォルトの名無しさん
05/03/05 21:43:01
>>42
>オブジェクト指向のどこが洗練されてなくて

ここで、「洗練されていない」という言葉に噛み付くのは カコワルイ。

オブジェクト指向とは「技術」であって、「学問」ではない。
体系化される事が目的では無くて、実戦で役に立つ事が目的。
むしろ洗練されていないことを誇りに思ってもいい位。


44:デフォルトの名無しさん
05/03/05 22:35:09
>>42
見易く出力。適当に改行したりとかインデントしたりとか。


45:デフォルトの名無しさん
05/03/05 22:35:28
何をもってオブジェクト指向というのか分からないや。

46:デフォルトの名無しさん
05/03/06 00:32:43
計算機系の文章は正確さを重視するから、まわりくどかったり冗長だったりするから英語でも分かりやすいね。
慣れてないと日本語でも分かりにくいけど。

47:デフォルトの名無しさん
05/03/06 01:07:08
>>43
そのようなつもりで書いたわけ。べつに、学問>技術といっているわけではないし、
漏れは情報科学とかの専門家でもないし、プログラマでもないから、実践的な技術
よりも、そのような論理的にすっきりしたほうが興味深い。実際、コンピュータの
専門以外の人にこそ、SICPのような本がプログラミングの概観するためのものとして、
より受け入れられるんじゃないかと思うよ

プログラミングの本は理系の割に「科学的」でないことが多いけど、SICP読むと
論理的な解釈を重視しているのが面白い。

誰かの受け売りかもしれないけど、オブジェクト指向はプログラムの骨組みを提供する言語、
Schemeのような関数型言語はアルゴリズムをわりと直接的な形でプログラムに落とすための言語、と言えるんでない?


48:デフォルトの名無しさん
05/03/06 05:15:12
オブジェクトより関数の方が基本的なものだから
よりキレイに見えるのは当然かも

49:デフォルトの名無しさん
05/03/06 08:18:50
ha?

50:デフォルトの名無しさん
05/03/06 10:44:08
SICPで学べないこと。OO厨との不毛な議論を避ける方法。

51:デフォルトの名無しさん
05/03/06 11:38:15
>>50
3章のカプセル化の例を教えると大抵の厨はビビるけどな

52:デフォルトの名無しさん
05/03/06 19:06:12
でOOの背景理論になりそうだったのをぶちこわしたのがSchemeだと教えればカンペキ。

53:デフォルトの名無しさん
05/03/06 19:16:47
手続き型OOPLほどメジャーではないし
関数型言語ほど美しくもなく生産性の高くない半端言語

54:デフォルトの名無しさん
05/03/06 19:36:16
>>48
まあそういうこと。Schemeって、「言語オタ」になりえない言語だと思う。

55:デフォルトの名無しさん
05/03/06 21:43:31
ほら、>>53みたいな厨は話をそらすしかなくなるから
後はスルーで十分。

56:デフォルトの名無しさん
05/03/06 21:51:03
クロージャ = オブジェクト ですがなにか?

57:デフォルトの名無しさん
05/03/06 21:53:51
多態するクロージャってのも、キモいな。


58:デフォルトの名無しさん
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:デフォルトの名無しさん
05/03/07 03:04:21
どう展開されるかが問題でしょ

61:デフォルトの名無しさん
05/03/07 21:53:19
昔はサイトにフルテキストのpsも置いてあった気がする・・・今はHTMLで、しかも一括ダウンロードできるファイルは置いてない。
さすがに昔は気前が良すぎたかな。

62:デフォルトの名無しさん
05/03/10 17:43:03
pair が手続きの組み合わせで表現できるって言うの、なんかあたりまえのような不思議のような、
とにかく驚愕した

63:デフォルトの名無しさん
05/03/13 20:34:14
>>61
wget -r しる!

64:デフォルトの名無しさん
05/03/13 22:58:35
SICPってSchemeのマクロを解説している?

65:デフォルトの名無しさん
05/03/14 01:09:11
してないよ。
Schemeのマクロってたぶん当時は無かったと思う。
LISPのdefmacroをSchemeで使うのも変だとか思ったんじゃないかな。


66:デフォルトの名無しさん
05/03/14 19:10:55
ソレより何より、SICPはSchemeを使ったコンピュータ
サイエンスの入門本であって、Schemeの本じゃないから、
当時マクロがあったとしても関係ないんじゃないかな。

67:デフォルトの名無しさん
05/03/14 19:22:23
コンパイル環境と実行環境の区別は教えてもいいと思うんだが、SICPには場所がないかも。

余談だけどC++にもtemplateの仕組みを無理矢理応用したマクロがある。
C++な人らはmetaprogrammingと呼んでいるけど。わかりにくいことこの上ない。



68:デフォルトの名無しさん
05/03/14 20:51:18
マクロってR5RSから入ったろ?

69:デフォルトの名無しさん
05/03/14 21:46:31
R3RS以前からありますが。

70:デフォルトの名無しさん
05/03/15 01:25:59
r5rs 以前は仕様上で正式採用されてたわけじゃないんじゃない。
r4rs のはあくまで付録でしょ?

71:デフォルトの名無しさん
05/04/05 13:58:26
SICPを読むときexerciseはやりますか? 飛ばしますか?


72:デフォルトの名無しさん
05/04/05 20:48:26
適当に。
どの問題だったか、ちゃんとやったら修論のねたになるよ、
みたいなこと書いてあった気がしたし。

73:デフォルトの名無しさん
05/04/06 22:07:09
少なくとも2章までの問題は全部やらないと、この本の意味がない
問題が面白すぎ

74:デフォルトの名無しさん
05/04/09 19:00:27
SICPの演習問題はかなり含蓄のある問題ですよね。

75:デフォルトの名無しさん
05/04/09 21:34:12
演習が本体だからね。

76:デフォルトの名無しさん
05/04/10 09:37:10
学生さんがのんべんだらりと読むにはそれもいいかもね。

77:デフォルトの名無しさん
05/04/12 23:49:20
この本は高校のうちにその存在を知っておきたかったなあ

78:デフォルトの名無しさん
05/04/15 23:39:09
勤務時間中にSICPの例題解いてる
浮世の穢れが浄化される気分だ

79:デフォルトの名無しさん
05/04/16 04:31:48
SICPはSchemeの入門にはいいけど、簡単すぎるし、ちょっと古い。
極めたい人にはEOPL(Essensials Of Programming Languages)の方がオススメ。
オブジェクト指向関数型言語のインタプリタをSchemeで作っていく。
海外の大学では定番のテキストらしい。

80:デフォルトの名無しさん
05/04/16 12:19:25
>>79
> SICPはSchemeの入門にはいいけど、簡単すぎるし、ちょっと古い。
はあ?そもそもschemeの入門書じゃないし。SICPは、プログラミングとは何か
を学ぶために学部1年生が一番最初に取るコース用の教科書なので簡単なのは
当然。

> 極めたい人にはEOPL(Essensials Of Programming Languages)の方がオススメ。
はあ?SICPとはまるで内容が違うんですけど。こっちはプログラミング言語の
学部向け入門用教科書。そもそも定番ってほど有名じゃないし。同じトピック
ならSebestaのConceptsの方がずっと有名(すでに第六版になってるし)。
底の浅い知ったかは止めようね。


81:デフォルトの名無しさん
05/04/16 16:10:00
どっちもよく知らないんだけど、

(1) プログラミングとは何かを学ぶために学部1年生が一番最初に取るコース用の教科書
(2) プログラミング言語の学部向け入門用教科書

この二つの違いはどのあたりなの?
(1)はプログラミングで、(2)はプログラミング言語だから(1) ⊇ (2)ということ?

82:デフォルトの名無しさん
05/04/16 17:28:34
>>81
(1) は一般向け
(2) は専門家向け

83:デフォルトの名無しさん
05/04/16 17:59:11
つまり内容は同じだがレベルが違う

84:デフォルトの名無しさん
05/04/16 18:07:01
カラダは男でもココロは女なの

85:デフォルトの名無しさん
05/04/16 19:14:04
確かにEssentials〜はSICPに近いね。Wandが参加してるし。
Concepts〜はimperativeな言語中心で、上の二者をhigher orderとするならfirst orderという感じ。


86:デフォルトの名無しさん
05/04/17 13:04:13
>>81
(1)はプログラミング未経験者が取るもので、計算機はどういう動作をするか、
アルゴリズムとは何か、プログラムを書いて問題を解くというのはどうい
うことなのか、を理解するのが中心
(2)はプログラミングはどれかの言語で一通り経験していて、さらに各種言語
の設計の背景にある理論や、言語処理系の実装の詳細について勉強する


87:デフォルトの名無しさん
05/04/17 15:26:20
ここには>>80が何人いるんだ?

88:デフォルトの名無しさん
05/04/17 15:32:57
ここは質問された人に限らずみんなで答えるインターネットです

89:デフォルトの名無しさん
05/04/17 15:39:02
SICPとEOPLはまるで内容が違うなんて誰の台詞だよ。
けっこう似てるだろ実際。

90:デフォルトの名無しさん
05/04/27 23:48:30
たしかに,CPSでインタプリタ作るってところは似てる.

91:デフォルトの名無しさん
05/04/27 23:49:57
果てしなくどうでもいいネタだな

92:デフォルトの名無しさん
05/05/12 23:22:59
仕方ないんです。
Scheme使いは情報系の言語ヲタばかりですから。

93:デフォルトの名無しさん
05/05/26 04:51:08
なんか止まってますね・・・

このビデオ見ながらがんばります.今1bを見終わりました.
URLリンク(swiss.csail.mit.edu)

94:デフォルトの名無しさん
05/05/28 04:06:27
はたして4章以降の演習問題ってみんなどのくらいとけてる?

95:デフォルトの名無しさん
05/05/28 04:24:47
でいまからよむばあいは
SICPとEOPLとどっちがいいんだ?

96:デフォルトの名無しさん
05/05/28 06:10:03
情報量とそれへのアクセシビリティを考えるとSICPなんじゃないでしょうか?

97:デフォルトの名無しさん
05/05/28 14:03:08
^^

98:デフォルトの名無しさん
05/05/28 14:16:14
今 SICP を読んでいる初心者です。2ch だけが頼りです。
>>1 - >>97 さんたちの議論をよく理解できるようにがん
ばっています。私にはまだまだ難しいですが・・・ (^^; >SICP

99:デフォルトの名無しさん
05/05/28 14:17:53
>>98
がんばってるのは感心だが、2chだけを頼りにするのはお勧めしないぞ。w

100:デフォルトの名無しさん
05/05/28 14:31:29
>>95
選ぶ必要などない
両方回し読み






101:デフォルトの名無しさん
05/05/28 15:14:14
2ch以外に頼るところがないのだ


102:93
05/05/28 17:21:22
>>98
私も今月くらいから始めた初心者です.
他にもリソースはいっぱいあるので参考にしてみてはいかがですか?
>>1 >>2 あたりにあるリンクをたどってみるといいかもしれません.

私は20年近く前のビデオをかなり頼りにしてますw
服装がフルスギスwww






103:デフォルトの名無しさん
05/05/30 02:28:00
>>95 2つかって同時に読め。そっちのほうがひとつだけ読むより早く読める。

104:93
05/05/31 02:15:35
こんなのみつけた.

URLリンク(icampus.mit.edu)

105:デフォルトの名無しさん
05/05/31 15:27:04
>>104

SICP(course 6.001)がオンラインコースで受講できました(^^
高卒のうえ独学で勉強していますのでとても興味深いです。

ありがとうございました m(_ _)m

106:93
05/06/02 22:29:47
>>105 参考になってよかったです.

>>93 のビデオも熱気があっていいですよ 
(´・ω・`)

107:93
05/06/12 12:22:37
問題1.6なんですが,
「new-ifが特殊形式じゃなくて普通の手続きだからパラメータが評価されてしまうため無限ループになる」
というのは自明のことなんでしょうか?

それともSchemeを知ってないと分からない問題なんでしょうか?

108:デフォルトの名無しさん
05/06/12 21:09:28
そこまでの文章を読んでいるなら自明に決まっている。


109:デフォルトの名無しさん
05/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
05/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:デフォルトの名無しさん
05/07/06 09:42:57
この本、1章から簡単な数学の話が出てきてちょっと戸惑いまっす。
高校時代に真面目に数学やらなかった文系にはちとつらいっす。
ただ逆にこれを機会に初歩的な数学を勉強始めるには丁度いいのかな。

112:挫折禁止
05/07/06 10:57:13
数学を避けたまま終わっていい、
そういう人、読み方には全然向いてない本。

これを機会にやってみようという人には面白いかも。挫折しなければ。

113:111
05/07/06 11:33:34
>>112
逆に数学的概念がLISPとして表現されるとちょっと分りやすいかな、とも思った。
SICPは数学の入門書でもあるのかな。
LISPを通して数学を学ぶぐらいのつもりじゃないと厳しそうだね、確かに。

114:デフォルトの名無しさん
05/07/11 10:47:51
Lispの元になっているラムダ記法は、初期の論理学で、
数学を厳密に記述、理解するために始められた研究に端を発してます。
(逆)ポーランド記法なんかがそのずっと初期に考えられた。

これまでの数学的記述を厳密に定義仕様という試みが初期にあったので。


115:デフォルトの名無しさん
05/09/04 21:26:59
手元に置いておきたかったので,
貧乏学生なのにペーパーバック版を購入してしまいました.


2ヶ月近く誰も来ないのは,
Schemeが人気ないから?
SICP自体が有名じゃないとか?

116:デフォルトの名無しさん
05/09/04 22:01:26
なことない
俺も今読んでるし,本屋行ってもなくなったと思ったらすぐ補充されてる

117:デフォルトの名無しさん
05/09/04 22:01:39
>>115
だって典型的な入門用教科書だもんな。特に騒ぐほどのこともないだろ。
内容も良書ではあるけれど、特別すごい訳じゃないし。
大学や大学院できちんと勉強してなかった奴が、どっかから聞きかじってSICP読んで、
自分のレベルの低さを棚に上げて絶賛する、っていうケースしか見たことないな。
米国で計算機科学勉強した人なら、当然マスターしてる訳だし。

118:デフォルトの名無しさん
05/09/05 12:10:40
日本の大学でも、情工情科なら一二回生のうちに
たいがいSICP使った単位があるよねえ。

119:デフォルトの名無しさん
05/09/05 15:17:55
日本でも米国でも大学はピンキリだから・・・

120:デフォルトの名無しさん
05/09/05 16:03:58
>>117
>大学や大学院できちんと勉強してなかった奴が、どっかから聞きかじってSICP読んで

orz

大学が電子工学だったので,確かに情報系のカリキュラムはお粗末でした.

121:デフォルトの名無しさん
05/09/08 23:07:56
>>117
> 大学や大学院できちんと勉強してなかった奴が、どっかから聞きかじってSICP読んで、
> 自分のレベルの低さを棚に上げて絶賛する、っていうケースしか見たことないな。

皮肉屋さんだねえ


122:デフォルトの名無しさん
05/09/08 23:28:47
俺も大学は物理家だったから正規の教育はFORTLANのみ。
もちろん趣味でそれ以前にCとかはやってたけどね。

で、就職後、趣味の継続でbitとか読んでたら何となくLISPに興味を持った。
てなパターンは多いんじゃないかな。

今はSICPで覚えた「プログラミング」をperlで実装してたりする。

#本職はソフトじゃないです


123:デフォルトの名無しさん
05/09/09 03:59:05
>>118
URLリンク(www-mitpress.mit.edu)
をみると日本は東大だけってなってるけど・・・


124:デフォルトの名無しさん
05/09/09 04:01:48
こっちのほうみると3つある
URLリンク(www.schemers.com)

けどこれで「たいがい」とは言えないんじゃない?l

125:デフォルトの名無しさん
05/09/09 05:46:54
東工大の情工も使ってるね

126:デフォルトの名無しさん
05/09/09 15:44:53
京都でも使ってるっしょ?

127:デフォルトの名無しさん
05/09/09 15:52:15
あのなあ、SICP使ってるなんて、いまどき何の自慢にもならないよ。
すげー古い教科書なんだし。

128:デフォルトの名無しさん
05/09/09 16:06:27
古いて

129:デフォルトの名無しさん
05/09/09 20:15:01
日本のゆとり教育の教科書よりマシ

130:デフォルトの名無しさん
05/09/09 22:06:57
古びるような内容かよ

131:デフォルトの名無しさん
05/09/09 22:22:03
インド人が使ってる教科書なんて、きっとすごいんだろうな


132:デフォルトの名無しさん
05/09/09 22:24:22
>>131
すごいよ。

133:デフォルトの名無しさん
05/09/09 22:40:19
>>130
> 古びるような内容かよ
まったく古びないと思ったときから進歩に取り残されてるの、気づかないんだよね。
10年近く前の教科書なんて米国じゃ古すぎでふつう使わん。
アルゴリズムの定番のCLRだって初版が出てから10年目で第二版を出したし、
SICPもだんだん使われなくなり始めてるし。ま、またそのうちに改版すると思うけど。

>>131
彼らは基本的に欧米で出版される最新の教科書を使ってるからね。
経済的に厳しい国用の安価なペーパーバックなんで買いやすいし。

134:デフォルトの名無しさん
05/09/09 22:43:22
>>133
> アルゴリズムの定番のCLRだって初版が出てから10年目で第二版を出したし、

目的が全然違うだろ。


135:デフォルトの名無しさん
05/09/09 23:08:11
>>134
「目的」って?

136:デフォルトの名無しさん
05/09/09 23:10:12
>>131
インド人を右に

137:デフォルトの名無しさん
05/09/10 00:03:48
たとえば,「ファインマン物理学」は古びてる?
新しいトピックが載っていないからって意味が無くなるわけでもないでしょ


138:デフォルトの名無しさん
05/09/10 02:15:16
実家に置いてあったファインマン物理学、親が勝手に処分してた(涙)
激しく関係ないのでsage。

古くなったところでそのまま忘れ去られてしまうものと、その時々で価値を保ち続ける
ものとの区別がつかない人は不幸なり。漏れの場合は忘れ去られるどころか捨て去られた
わけですが orz

139:デフォルトの名無しさん
05/09/10 08:13:42
> 新しいトピックが載っていないからって意味が無くなるわけでもないでしょ
まあ新しくてより良い教科書があるのに、翻訳されてないっていうだけで
SICPに固執したいのなら、それはそれでいいんじゃない?

140:デフォルトの名無しさん
05/09/10 11:23:54
確かに「これはまだ新しい問題で、現在盛んに研究中の領域である」
みたいな文言はちょくちょく出てきてた気はしますしね。
根本的に変わるものではないにしても、その辺のリファインはされて然るべきでしょうね。
まあ教科書なんだからその辺の進展についてある程度は
教師がフォローするのが本来の姿なんでしょうけど。

さておき、煽りじゃなく本当に訊きたいのですが、
>>139 さんの言う新しくてより良い教科書でお薦めは何でしょうか。
ちょうど SICP 読むくらいの人間に対して丁度いい物で何かあったらご教示頂けると幸いです。

141:名無しさん@そうだ選挙に行こう
05/09/10 22:15:20
ワクワク

142:名無しさん@そうだ選挙に行こう
05/09/10 22:33:04
+   +
  ∧_∧  +
 (0゚・∀・)   ワクワクテカテカ
 (0゚∪ ∪ +        
 と__)__) +


143:名無しさん@そうだ選挙に行こう
05/09/11 07:14:44
テカテカしてるってことは
磨耗してるってことだよ

144:名無しさん@そうだ選挙に行こう
05/09/11 16:31:32
待ちくたびれて擦り切れたんだよ

>>139 まだー?

145:名無しさん@そうだ選挙に行こう
05/09/11 16:38:22
>>144
今執筆中かも

146:140
05/09/12 01:38:27
じゃあ >>139 さんを待つ間に自分で貼ってみるテスト。
ぱっとブックマークを覗いてそれっぽいのを。Krishnamurthi 先生のやつ。

Programming Languages: Application and Interpretation
URLリンク(www.cs.brown.edu)
How to Design Programs
URLリンク(www.htdp.org)

んー、でも前者は SICP 読み終わってからが対象っぽいんですよね。
四〜五章あたりとややかぶってる感じかなあ。
最後のは逆に三章あたりまでが範囲だし、Scheme の教科書という側面も強いですね。
入門から簡単なコンパイラまで、ってのは結構無いんじゃないかなあ。
『アルゴリズム+データ構造=プログラム』が確かそうだったけど、
古さでは SICP すら比じゃないですし。

というわけで >>139 さんを引き続きお待ちします。
脇道からこっちの方に迷い込んだくちでして、基礎をもっと固めたいなあと思っているので。

147:デフォルトの名無しさん
05/09/12 01:48:18
>>146
前者はプログラミング言語偏重だね。SICPと比べると。
というかプログラミング言語の本だよね。

148:デフォルトの名無しさん
05/09/12 02:33:17
なぜsageる?

149:デフォルトの名無しさん
05/09/12 09:43:52
140=粘着荒らし

150:デフォルトの名無しさん
05/09/12 11:30:56
今は高木の解析概論よりいい教科書ってあるの?

151:デフォルトの名無しさん
05/09/12 21:47:31
>>149 = >>139


152:デフォルトの名無しさん
05/09/16 23:49:31
はじめまして、私は大学3回生です。
情報系の学科ですが、ほとんど需要の高いJAVA系やC系を勉強しています。
授業がこれらの言語をしているので。。
で、独学でMatlabだったりPrologを勉強した時に
SICPに出会って今日購入しました。
みなさんはSchemeをかなりやっているように見えるのですが、
Schemeだけでグラフィック関係は可能なのでしょうか?


153:デフォルトの名無しさん
05/09/16 23:53:34
>>152
結論から言えば可能。
例えばGaucheはgtkやOpenGLを呼ぶ機能が標準だったかオプションだったか
で備わってたと思う。

154:デフォルトの名無しさん
05/09/17 00:05:48
>>152
留学生?

155:デフォルトの名無しさん
05/09/17 03:06:09
>>152
図形言語機能付きの tustk の使い方
URLリンク(winnie.kuis.kyoto-u.ac.jp)
アルゴリズムとデータ構造入門
URLリンク(winnie.kuis.kyoto-u.ac.jp)

156:デフォルトの名無しさん
05/09/17 17:04:45
>>152
留学生ではないです。現役で普通の日本にある大学に通っています。
ごく普通の大学生です。大学に入るまではパソコン自体を触ったことが
なかったので、今は勉強中です。基礎中の基礎ですが。。。
んで、色んな言語があるのを知って触れている感じです。
ですが、PrologやJavaは結構知っている方です。たぶんですが。
MatlabとかPrologって変ですか?授業でたまたま触れたので勉強しました。
>>152さんと155さん
サンキューです、さっそく調べてみます。

今はMzSchemeやDrSchemeを使っているのですが、
Schemeを独学で勉強するのに処理系で左右されるモノなのでしょうか?
たくさんの処理系があり、適当にチョイスしてみたのです。
色んなサイトでGaucheを使っている方々が大勢いらっしゃいますが
そっちの方が有用なのですか?
初心者ながら申し訳ないですが、わかる人お願いします。

157:デフォルトの名無しさん
05/09/17 17:30:05
Gaucheは開発者が日本人だから、日本語処理が得意。
どっちかというと怪しい処理系が多いんだけれども。

158:デフォルトの名無しさん
05/09/17 18:15:26
日本語処理がど〜ねんこ〜ねんよりも、言語としてあるべき姿にこだわり過ぎて
ある意味引きこもりの自閉症気味な素のSchemeを、適度に妥協することで現実的な
問題を解決するための快適なプラットフォームに仕上げているところが利点だと思う。
Gaucheの話ね。

159:デフォルトの名無しさん
05/09/18 07:52:29
本文中のコードをわざわざ手で入力しなくてもいいように
どっかに転がってたりしませんか?


160:デフォルトの名無しさん
05/09/18 09:08:19
>>159
URLリンク(mitpress.mit.edu)


161:デフォルトの名無しさん
05/09/18 09:27:07
ありがとうございます。
ちゃんとあるんですね。
いつもブックマークした目次ページから見始めていたので思い至りませんでした。


162:デフォルトの名無しさん
05/09/18 10:47:05
自分で入力して、入力ミスを悩みながら直すのも、力つくよ。

163:デフォルトの名無しさん
05/09/18 12:22:12
むしろノートに書き写してる

164:デフォルトの名無しさん
05/09/18 12:52:38
俺はまず最初に暗記だな。

165:デフォルトの名無しさん
05/09/18 13:56:07
>>162
キーボードだとイマイチ効力が低い気もするけど、写経って大事な事なんだよね。


166:デフォルトの名無しさん
05/09/18 14:03:18
ダウンロードで実行だと素通りになる可能性あるからね。

167:デフォルトの名無しさん
05/09/19 18:59:14
>>152

私も現在、Schemeの勉強中でSICPも読んでいます。
私はグラフィック系というか、絵を簡易的なアニメーションさせたいなぁ
って思ってます。絵を回転させたりーてな感じかな?
Schemeって様々な機能を持っていますが、どこまでが限界なんですか???
わかる人います??

168:デフォルトの名無しさん
05/09/19 19:51:54
チューリングマシンの停止問題

グラフィックがどうとかはSICPに関係ないのでLisp/Schemeスレでどうぞ。


169:デフォルトの名無しさん
05/09/19 20:33:06
ここかな。
CommonLisp Scheme Part13
スレリンク(tech板)

170:デフォルトの名無しさん
05/09/23 14:22:12
Schemeの実装のソースを読んでみたいんだけど、
何か読みやすいものはありません?
言語はC,C++,java辺りでお願いします。
一応、単純なLispくらいは読んだことがあるし、実装したこともあります。

171:デフォルトの名無しさん
05/09/23 14:25:26
>>170
SCMあたりがシンプルで良いかも。

172:デフォルトの名無しさん
05/09/23 14:30:00
実装したこともあるなら何が知りたいか書かないと。


173:170
05/09/23 14:42:05
主に知りたいのは
継続の処理の仕方とマクロ周りです。

174:デフォルトの名無しさん
05/09/28 12:57:51
>>173
継続はこれとかどうでしょうか?
URLリンク(www.jah.ne.jp)

175:デフォルトの名無しさん
05/09/29 00:32:19
>>174
ここも良いかも
URLリンク(www.shiro.dreamhost.com)


176:デフォルトの名無しさん
05/10/01 21:55:10
僕には無理です
誰か買いません?
「EXPLORING COMPUTER WCIENCE WITH SCHEME」
ユーズドにしてはかなり綺麗な方だと思う¥5,000でお願い
URLリンク(www.amazon.co.jp)


177:デフォルトの名無しさん
05/10/01 23:54:45
うざいなコイツ

178:デフォルトの名無しさん
05/10/02 15:00:57
1000円なら考える。

179:デフォルトの名無しさん
05/10/25 22:24:04
ex3.42のコードって何か問題ある?


180:デフォルトの名無しさん
05/10/26 00:09:45
どんなんだっけ。

181:179
05/10/26 23:18:55
URLリンク(mitpress.mit.edu)
withdrawやdepositが同時に実行されないようにするための
function->serialized function の変換を呼出しのたびに行わずに
最初にletしておいたものを使いまわしても問題ないか?


182:デフォルトの名無しさん
05/11/26 08:39:23
はじめまして、コンピュータサイエンスの基礎をやりなおし(少しおおげさですが)しようとして、
SICPの原著を買いました。今は、「ヘネパタ」の原著を読んでいますが、終わったらSICPに
取り組もうと思います。

学生時代、SchemeとTinyCLOSで研究して修士論文を書きました。最近、プログラミング
言語のアイデアとして試してみたいことがあって、超サブセットなSchemeをR5RSを見て
作ろうとしたのですが、C言語、C++そのものやSchemeの背景にある考え方が欠落して
いることに気づいて愕然としたため、SICPに取り組むことにしました。

よろしくお願いします。


183:デフォルトの名無しさん
05/11/26 09:11:41
よろしくお願いされてもこまるが、まあ、よろしく。
漏れも今Scheme処理系作ってる。syntax-rulesが結構めんどくさい。

184:デフォルトの名無しさん
05/11/26 10:57:40
>>183
syntax-rulesの実装って時間の無駄って感じがしない?
define-macroはどうせ数行程度だし。
自分も処理系いくつか作ったけどHygienic Macro周りはいつも避けてる。
デバッグが楽になるわけでもなし。

185:デフォルトの名無しさん
05/11/29 08:55:27
これ、読むと少しはモチベイション上がるんじゃねえ?

Syntactic Abstraction in Scheme
URLリンク(www.cs.indiana.edu)

まあ、俺もこの形がベストなのかどうか良くわかんないんだが…
もっとすっきりしたプリミティブに分解できないものか。

186:愛也
05/11/29 15:36:40
こんにちは。

187:愛也
05/11/29 15:45:56
大学で電気・電子工学を学んでいる者ですが、どうしても分からない事がありましたので書き込みをさせていただきます。

(1)
特定のデータを指定するにはアドレス信号を用いる。どれだけの信号が発行できるかはアドレスの本数による。
アドレスの本数が8本のときは(  1  )個、12本の時は(  2  )個のアドレスを発行する事ができる。

(2)
容量32KBのメモリがある、このメモリバイト単位でアドレスをつけた場合(アドレス幅は8ビット)、全アドレスを指定するには、最低(  3  )本のアドレスが必要である。
同時に256MBの場合は(   4   )本必要である。

上の問題をどなたかお時間がある方がいらっしゃれば教えていただけないでしょうかぁ??

何卒よろしくお願い致します。

188:愛也
05/11/29 15:50:44
訂正ですスミマセン><


(1)
特定のデータを指定するにはアドレス信号を用いる。どれだけのアドレス信号が発行できるかはアドレスバスの本数による。
アドレスバスの本数が8本のときは(  1  )個、12本の時は(  2  )個のアドレスを発行する事ができる。

(2)
容量32KBのメモリがある、このメモリにバイト単位でアドレスをつけた場合(アドレス幅は8ビット)、全アドレスを指定するには、最低(  3  )本のアドレスバスが必要である。
同時に256MBの場合は(   4   )本必要である。

上の問題をどなたかお時間がある方がいらっしゃれば教えていただけないでしょうかぁ??

何卒よろしくお願い致します。

189:デフォルトの名無しさん
05/11/29 16:34:23
◥◤◣◢▎▍▌▋█▅▄▃▂▀

190:デフォルトの名無しさん
05/11/29 20:23:50
>>188
いくらなんでもそれがわからないのはまずいだろ。
小学生時分でもわかるぞそれくらい。
で、大学生のくせにこんなこと2chで訊く以外に調べ方を知らないというのが
また泣ける。

191:デフォルトの名無しさん
05/11/29 21:38:28
せめて適切な板・スレを選択する程度の頭脳でもあればよかったのにね。

192:183
05/11/30 05:49:48
>>185
うう、なんでこの論文に気づかなかったんだ。
gaucheのソースを参考にしつつ自力で実装したよ。

193:185
05/11/30 08:59:31
>>192
RnRSの参考文献に挙がってるぞ。


194:デフォルトの名無しさん
05/12/06 03:32:08
質問です。

問題 3.17(152ページ)
リストを引数に取り、そのリストに含まれるペアの個数を数える手続き
count-pairs を定義せよ。 但し、教科書の問題3.16で定義された手続き
が正しく動かないことを考慮し、正しい手続きを考えること。

問題 3.22(156ページ)
キューを一対のポインタで表現する代わりに, 局所状態を持つ
手続きとして作ることが出来る。 局所状態は通常のリストの
最初と最後へのポインタからなる。 従って make-queue は次の
形である。
(define (make-queue)
(let ((front-ptr ... )
(rear-ptr ... ))
<内部手続き>
(define (dispatch m) ... )
dispatch))

make-queue の定義を完成させよ。

よろしくお願いします。



195:194
05/12/06 04:45:21
自己解決しました。

196:デフォルトの名無しさん
05/12/07 21:41:10
アッソ

197:デフォルトの名無しさん
05/12/13 09:55:20
質問です。
二次元の局所表
(define (make-table) (let ((local-table (list '*table*)))
(define (lookup key-1 key-2) (let ((subtable (assoc key-1 (cdr local-table))))
(if subtable (let ((record (assoc key-2 (cdr subtable))))
(if record (cdr record) #f) #f)))
(define (insert! key-1 key-2 value)
(let ((subtable (assoc key-1 (cdr local-table))))
(if subtable (let ((record (assoc key-2 (cdr subtable))))
(if record (set-cdr! record value)
(set-cdr! subtable
(cons (cons key-2 value) (cdr subtable)))))
(set-cdr! local-table (cons (list key-1 (cons key-2 value))
(cdr local-table))))) 'ok)
(define (dispatch m) (cond ((eq? m 'lookup-proc) lookup)
((eq? m 'insert-proc!) insert!)
(else (error "Unknown operation -- TABLE" m))))
dispatch))
を三次元に拡張せよ。

お願いします。

198:デフォルトの名無しさん
05/12/13 11:32:00
それ質問と言わない。


199:デフォルトの名無しさん
05/12/13 21:40:08
198に同意

200:デフォルトの名無しさん
05/12/13 21:54:13
でも、一応「質問です」って書いあるんだから万一質問であった場合のことも
考えておくというのが危機管理というものではないのか?

201:デフォルトの名無しさん
05/12/13 23:31:27
titech生だろ。

202:デフォルトの名無しさん
05/12/14 18:20:40
疑問文にし忘れただけだろ。

質問です。  →質問ですか?    違います。
拡張せよ。  →拡張するか?    しません。
お願いします。→お願いしますか?  知りません。

終了

203:デフォルトの名無しさん
06/01/31 00:26:31
死ぬぜ

204:デフォルトの名無しさん
06/03/14 21:46:01
保守

205:デフォルトの名無しさん
06/03/14 22:46:03
2ヶ月かけて2.3.3集合の表現まで来たぜ、ふぅー。


206:デフォルトの名無しさん
06/03/30 05:38:18
全力で保守

207:デフォルトの名無しさん
06/04/15 22:52:52
SICP再発見
URLリンク(d.hatena.ne.jp)


208:デフォルトの名無しさん
06/04/23 14:06:25
細長い楕円ってないですかね。2つの中心の距離を離しつつ、
幅の距離を短くすればある程度は細長くなるんですけど。

209:デフォルトの名無しさん
06/07/23 07:40:03
パンヤの計算機作ってくれ

210:デフォルトの名無しさん
06/08/12 16:20:55
age


211:デフォルトの名無しさん
06/10/13 19:39:09
保守

212:デフォルトの名無しさん
06/10/28 20:33:55
都内の本屋で立ち読みできると来ない?
新宿東口紀伊国屋にはなかったんだ。

213:デフォルトの名無しさん
06/10/28 21:48:09
>>212
本当に無かったのか?検索したら在庫出てきたぞ?
棚の場所が変なところだから見過ごしやすいが。。。

URLリンク(bookweb.kinokuniya.co.jp)

ネットで在庫検索できる書店では、紀伊国屋の新宿2店舗、三省堂神田本店、
ジュンク堂池袋本店、八重洲ブックセンターにはある模様。

214:デフォルトの名無しさん
06/10/29 09:11:24
>>212
俺は南口ので買ったぞ

215:デフォルトの名無しさん
06/10/29 10:59:25
立ち読みもなにも、webに置いてあるじゃんか。

216:デフォルトの名無しさん
06/10/30 12:02:30
>>215
翻訳


217:デフォルトの名無しさん
06/10/31 01:14:45
あの英語が理解できない人には内容も理解できないから
英語で読んだ方がいい

218:デフォルトの名無しさん
06/10/31 08:36:32
SICP って勝手に翻訳して公開したらまずいんだろうな。勿体無い…

219:デフォルトの名無しさん
06/11/01 12:02:06
まあ勝手にはまずいよ。

URLリンク(mitpress.mit.edu)
にfull textがあるくらいだから、
お願いすれば、許可が出るかも知れない。

ただ、著者だけの問題じゃなくて、
翻訳を出している出版者との関係も問題になるから難しいとは思う。

220:デフォルトの名無しさん
06/11/01 19:07:03
和田英一訳は頭がおかしいので需要はあると思うんだがな。

221:デフォルトの名無しさん
06/11/01 19:31:23
たぶん頭がおかしいのかもしらんけどw、日曜にamazonで中身も見ずに注文したよ
infoで読める原書も手に入れたんで、原書を参照しつつ読んでみようと思ってる

222:デフォルトの名無しさん
06/11/01 23:34:13
pdfのはないの?

223:デフォルトの名無しさん
06/11/01 23:52:50
日本語に翻訳して国外のサーバにアップするのもダメなのかな。
出版社の契約は国単位であって、言語単位じゃない気がするけど。

224:デフォルトの名無しさん
06/11/01 23:55:04
このページを訳すボタンが勝手に翻訳しました><


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5040日前に更新/185 KB
担当:undef