[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 12:15 / Filesize : 87 KB / Number-of Response : 318
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Lisp Scheme Part20



1 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 09:16:26 ]
□過去スレ□

Part19: ttp://pc11.2ch.net/test/read.cgi/tech/1200237296/
Part18: ttp://pc11.2ch.net/test/read.cgi/tech/1186922295/
Part17: ttp://pc11.2ch.net/test/read.cgi/tech/1177065699/
Part16: ttp://pc11.2ch.net/test/read.cgi/tech/1172404795/
Part15: ttp://pc10.2ch.net/test/read.cgi/tech/1151025773/
Part14: ttp://pc8.2ch.net/test/read.cgi/tech/1132275726/
Part13: ttp://pc8.2ch.net/test/read.cgi/tech/1115901841/
Part12: ttp://pc8.2ch.net/test/read.cgi/tech/1100229366/
Part11: ttp://pc5.2ch.net/test/read.cgi/tech/1091456033/
Part10: ttp://pc5.2ch.net/test/read.cgi/tech/1075630259/
Part9: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/
Part8: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part7: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part6: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part5: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part4: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part3: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part2: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part1: ttp://piza2.2ch.net/tech/kako/987/987169286.html

159 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 22:20:52 ]
>>144
特に閉鎖する予定はないですよ

160 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 22:52:54 ]
>>159
よかったぁ!
じゃあ107が書いてる「ネット公開止めた」書籍って何ですか?

(もちろんヌクヌク本は購入済み、本日発送メールがきました)


161 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 23:28:17 ]
>>160
去年の5月に再構成して、今出てる書籍(フムフム本)と同じ構成になった。

 公開版(立ち読み版)→再構成版(非公開)

再構成版は公開版からforkしたもの。

162 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:39:37 ]
blog.

163 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:40:08 ]
blog.livedoor.jp/dankogai/archives/51017577.html

164 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:54:12 ]
黒板バロスw

165 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 02:52:31 ]
なるほど。継続という難しい概念があるんですね。

166 名前:デフォルトの名無しさん mailto:sage なんつって [2008/03/14(金) 03:04:04 ]
継続も要するにλだから構える必要はないと思うよ。

167 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 03:15:31 ]
ググって色々読んだんですが、まだまだ悩む必要
ありそうです。概念が初めてなので慣れが必要ですね。
早くGauche本到着しないかな。



168 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 07:16:33 ]
継続て唯のプログラムカウンタですか?
プログラムカウンタを変数に代入できるって何が嬉しいんだろ

169 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 08:13:17 ]
いいえ違います。
関数fから呼ばれた関数hも
関数gから呼ばれた関数hも
同じプログラムカウンタを持ちますが
違う継続を持ちます。

170 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 08:28:41 ]
アドレスだったらわかるがプログラムカウンタって表現はちょっと違和感。

171 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 08:30:37 ]
プログラムカウンタだけじゃなくて関数コールスタックの中身も全部保存するようなもんだ

172 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 08:44:45 ]
ゲームのセーブ・ロードが、未だにイメージの基本になってるな、俺の場合。

Schemeの継続はさしずめ、「戦士がスライムAを倒して、これから魔法使いがスライムBにメラを唱える」
という戦闘シーンのど真ん中ですらセーブできるRPGみたいなもんだ、とかそんな風に。

173 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:03:17 ]
ただ値が保存されるのではなくて
束縛が保存されるだけだから
ロードした直後に開ける宝箱の中身は違うかもしれない

174 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:11:41 ]
>>168
既存の概念に還元して、
新た強い概念を理解しようとする癖は直した方がいいよ。
そうしていると抽象的な思考がなかなか身に付かないから。

175 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:34:48 ]
プログラムカウンタじゃなかったらなんなのよ

176 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:35:57 ]
人生…かな?

177 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:59:38 ]
いや、大いなるナニかだよ…



178 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:11:21 ]
継続は継続だ
とりあえず「なんでも継続」を嫁

強いて言うならプログラムカウンタというよりはコンテキストというか...

179 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:17:07 ]
>なんでも継続
setjmpに還元してるけど、いいの?

180 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:27:38 ]
ちゃんと読んだ?

setjmpのようなものだが、どう違うかもちゃんと書いてあったように
思うけど。

181 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:38:18 ]
Cで言うsetjmp/longjmpとか言い出す解説が一番困るよな。

182 名前:デフォルトの名無しさん [2008/03/14(金) 14:15:08 ]
固有値分解や特異値分解を行うプログラムを自分で組むのめんどくさいから
どこかに落ちてないか探したら
GSL for Lisp
とかいうのみつけた。使ってる人は結構いるのでしょうか?




183 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 14:31:15 ]
>>182
Maxima

ところで cl で規模が大きめのベンチマークって何かある?
tak じゃない奴希望。

184 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 17:37:36 ]
>>183
これとか? 使ったことないけど。
www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/bench/gabriel/0.html

185 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 17:54:39 ]
Scheme好きはJazzが好きな奴が多いと思う。

186 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:25:53 ]
微妙なミュージシャンを挙げると「そんなものはジャズじゃない」とかいって怒られそう。

187 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 19:22:59 ]
プログラミングGauche今日発売だと思って本屋いったら
どこも近日入荷予定だったorz




188 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 19:30:41 ]
何故ジャズ?
Schemerならプログレだろ?

189 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:19:07 ]
アセンブラはバッハ(バロック)

レンガ積むみたいに端から積んでく感じがいいよね

190 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:26:33 ]
SchemerはKeith Jarrett solo か Bill Evansだ。

191 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:04:05 ]
Cとかで再帰関数書いたときに、ローカル変数確保するスタック領域が足りなくなって、
スタックオーバーフローとかで止まる場合があるじゃないですか。
Schemeの継続ってローカル変数の確保以上にリソースを喰いそうなんですが、
継続のための領域もあふれたりすること、あるんですか?
すごく阿呆な質問だったらすみません…

192 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:13:41 ]
どんな言語でも記憶領域あふれさせるのは簡単だよ。
問題なのは継続が必要な時に十分に効率的かどうかって事。
けどそれ以前に継続についてよく学んでから考えてはどう?
知識のない状態で、いきなり効率ばかり考えるくせがあると、
単純具象バカになりやすいから。

193 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:39:07 ]
Common Lispは豪華絢爛なイタリアオペラってとこか

194 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:43:28 ]
>>191
不要な継続を後生大事にとっておけばそうなる可能性はある。
そうでない限りGCがなんとかしてくれるであろう。

195 名前:191 mailto:sage [2008/03/14(金) 22:12:54 ]
>>192,193
ありがとうございます。
どちらかと抽象ばっかり考える癖があるので、ちょっと実装に興味を持っているのです。
でももっとちゃんと理解してからにします。

196 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:33:36 ]
とりあえず
質問する前に
テンプレは読め。

197 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:43:04 ]
何を読むんだw
書けば1行で済むのに
(do ((i 0 (+ i 1)) (xs '() (cons (call/cc values) xs))) ((> i 10000) xs))



198 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:53:51 ]
>>4

199 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:39:04 ]
マクロ定義の中身について質問があります。

(define-syntax letcc
(syntax-rules ()
((letcc var . body)
(call-with-current-continuation
(lambda (var) . body)))))

このマクロ定義の(letcc var . body)や(lambda (var) . body)に出てくる
ドット記号はどういう意味なのでしょうか?

後者は継続を関数として定義しているように見えますが、varに何か値を与えた
場合、結果はどのように評価されるのでしょうか?

200 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:43:05 ]
マクロ定義以外に出てくるドットと同じ。

201 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:47:56 ]
まずは>>3を読んでくれ。

(a b c) : (1 2 3) → ((a . 1) (b . 2) (c . 3))
(a b . c) : (1 2 3 4) → ((a . 1) (b . 2) (c 3 4))

評価しない

202 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:23:30 ]
>>200
consセルのドットですね。

>>201
Revised5を見てみましたが基本的なルールがわかりませんでした。

(call-with-current-continuation
(lambda (var) . body))
これは継続の定義で、確かに文法どおり1引数を取る関数
(lambda (var) . body)が書かれてますが、この表記の
意味が理解できません。通常の関数の一つとして
(lambda (var) (* 2 var ))ならば、((lambda (var) (* 2 var )) 10)
のように実行できます。上のマクロだと(letcc hoge 3)などとやると
確かに3に評価されるのですが、(lambda (var) . body))のvarにhoge
が渡されて . body が3になるということですか?
やはり(lambda (var) . body)の表記の意味がわかりません。

203 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:29:13 ]
>>202
> >>200
> consセルのドットですね。

それがわかっているのに何故>>199のマクロが理解できないか、
そっちの方が理解できないよ。

もしかして (lambda (a b . restargs) ...) も知らない?

204 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 01:54:00 ]
>>184
thx

205 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 04:22:58 ]
>>203
例えば>>3www.sci.u-toyama.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html には
には
手続き

[[構文]]  (lambda <仮引数> <ボディ>)

構文: <仮引数>は下記に示す通りの仮引数のリスト(16)でなければならず、
<ボディ>には一つ以上の式が連続しなければならない。

ってなってるから、
. body
の部分がどういう解釈なのかを聞いてるんだと思うんだが。



206 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 04:55:32 ]
>>202
(lambda (var) . body)
↓↑
(lambda (x) (foo x) (bar x) (baz x))
=(lambda (x) . ((foo x) (bar x) (baz x)))

→body = ((foo x) (bar x) (baz x)))

;;;;;;;;;;;;;;;;;;;
(lambda (var) body)
↓↑
(lambda (x) (foo x) (bar x) (baz x))

ミスマッチエラー


207 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 05:40:01 ]
カッコ書いてるとふわふわふわと夢が広がりすなぁ( ^ω^)



208 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:38:41 ]
例のGauche本でさわり始めたんだけど、VimでEmacsのc-x -eみたいにエディタ内から部分的に式を評価することってできないのかな?

あと、(car '()) がエラーになるのは当然なんだけど、これでエラーが発生している行数って分からないものなの?
手続き型言語だとエラーの行数は極当然の情報だけど、これに一番戸惑っている。

209 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 10:18:10 ]
パーズしたときに行の情報は失われる
どのみちマクロ展開でテキストとの対応が取れなくなるだろうし

210 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:15:56 ]
レスありがとうございます。

>>203
>>205
>>206
>(lambda (a b . restargs) ...)

これは分かります。
この場合、2個以上の引数を渡すことが出来て、1番目はaに2番目はbに
残りはリストとしてrestagrsに渡されます。

> (lambda (var) . body)
> ↓↑
> (lambda (x) (foo x) (bar x) (baz x))
> =(lambda (x) . ((foo x) (bar x) (baz x)))
> →body = ((foo x) (bar x) (baz x)))

lambda (x)がS式ということならば理解できます。

戻りますが、
(define-syntax letcc
(syntax-rules ()
((letcc var . body)
(call/cc
(lambda (var) . body)))))

(letcc x 3) が(call/cc (lambda(x) (x 3)))に置き換わって継続x
(今の場合何もしない)が実行されて3という結果を生じるのは間違い
なさそうです。これが正しい理解ならば、xはvarに置き換えられますが、
3が(x 3)になるのが理解できません。bodyが3になるとして、
(lambda (x) . 3)だと意味がわかりませんよね。。

211 名前:208 mailto:sage [2008/03/15(土) 11:17:28 ]
>>209
しかし、それなりの規模のコードを書いているときふとエラーが発生したら何を目印にしてデバッグすればいいの?
行番号がないLISPなりのデバッグ方法ってあるの?

212 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:18:24 ]
(call/cc (lambda(x) 3))でも3になりますね。
(letcc x 3) ==> (call/cc (lambda(x) 3)) かもしれません。

213 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:40:38 ]
gaucheは行番号持ってる。が、当てにならん……

214 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:57:16 ]
>>210
(letcc var . body) → (letcc . (var . body))
(letcc x 3) → (letcc . (x . (3 . '())))
var = x
body = (3)
即ち(letcc x 3)は(call/cc (lambda (x) 3))に置換される。
(call/cc (lambda (x) 3))も(call/cc (lambda (x) (x 3)))も
同じ継続に同じ値を返しているから勘違いしたのでは?

215 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 12:01:45 ]
さらに追加
(lambda (x) 3) → (lambda . ((x) . (3)))だから

マクロのパターンマッチ時には構文とか関係なく
リストの置換処理のみ行われる

216 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 12:03:01 ]
テンプレートとの対比を考えれば
(lambda (x) . (3))と書いた方が適切だったか

217 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 12:26:40 ]
>>214

> (letcc var . body) → (letcc . (var . body))
> (letcc x 3) → (letcc . (x . (3 . '())))

理解できました。(パズルのようでした。。)
基本的な文法とともにSeasonedを進めていきたいと思います。
ありがとうございました。



218 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 12:37:31 ]
>>215
>>216

紙に書きながら確認したのですが、確かにbodyが(3)なので
(lambda (x) . (3))になります。
. ( は省略できるので(lambda (x) 3)と同義ですね。

(lambda (x) 3) は要素が lambda、 (x)、 3 のリストということですか。

考え方はC言語のマクロと同じで単にラベル置換するだけでよいと。

スッキリしました。ありがとうございました。

219 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 12:50:33 ]
>>213
して、その方法は?

220 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:07:28 ]
>>211
Lisperがバグなんて出すわけないじゃん

221 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:36:40 ]
フムフム本にはそこら辺について書かれてないのかな。

222 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:54:29 ]
やっぱり宣言的にプログラムを組む事と
関数単位でREPLでテストを繰り返す事に尽きるのかな?

223 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:57:20 ]
短い関数しか書かない!

224 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 15:48:39 ]
ヌクヌク本来たぁ!
初版第1刷が何部出るか分からなかったから
布教用は買わなかったけど。

225 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 15:53:06 ]
プログラミングGauche届いた。cbookにしておいて良かった。
これがヌクヌク本ですか?

226 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:03:18 ]
店頭に並んだかな?

227 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:17:59 ]
bookweb.kinokuniya.co.jp/htm/4873113482.html

紀伊国屋にはあるみたい。



228 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:04:40 ]
フムフム本でもヌクヌク本でも良いけど、カワハギ本とだけは呼ばないでくださいませ。

229 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:06:06 ]
むしろフムフム本ヌクヌク本と読んでる奴等の方がキモイ件

230 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:49:09 ]
ブーブー本ならいいのかな?

231 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:25:18 ]
中甲本

232 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 20:12:03 ]

Lisp/Schemeの初心者勉強会って需要ある?
とりあえずIRCつかってやってみたいと思ってるんだけど

233 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 20:26:07 ]
>>232
ここの人たちは経験豊富だから漏れのような初心者の質問は
申し訳なくて躊躇してしまう。結局答えてもらってるけどw。
他言語みたいに初心者スレがあれば相談しやすいんだが。
でも初心者スレに初心者しか集まってもしょうがないか。
分からなかったら聞くという形式がいいな。会社でも
勉強会とかやっても結局あまり意味は無いから。

234 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 20:33:38 ]
>>232
IRCってやったことないけど
やってみたい

235 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:28:16 ]
モレモレモ

236 名前:232 mailto:sage [2008/03/15(土) 21:34:09 ]
いくらか需要があるので

irc.scenecritique.com
port 6667

チャンネル #Lisp_Scheme

クライアントはcottonあたりが誰でも使いやすいと思います
(LisperならEmacsでつないだ方がいいかもしれませんが)

なるべくつなぎっぱにしておきますが、サーバメンテナンス後とかは
誰もいない状況になるかもしれません

※IRCはつないだまま離席している人が結構いるので即返答はないことが多いです





237 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:42:47 ]
Schemeでは手続きっていつコンパイルされるんですか?
lambda式はreadの後、evalの前にコンパイルできるけど
その評価された値である手続きはevalより前にはコンパイルできませんよね?
それとも、CLだと「手続きを返す手続きがコンパイルされると、その返される手続きもコンパイルされる」から
「コンパイルされたlambda式は、コンパイルされた手続きを返す」とかになるんでしょうか?
(そもそもCLの#'構文は手続きへと評価される式ではなく、手続きのリテラル表現?)




238 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:44:56 ]
>>236
文字コードは?

239 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:52:20 ]
>>237
仕様を満たす限りいつコンパイルしてもよい。コンパイルしなくてもよい。

240 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:06:15 ]
>>239
すみません、そういう話ですらありませんでした。
勘違いしてました。
237は忘れてくださいorz

241 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:49:42 ]
wide系の#scheme-jpが過疎ってるんだけど、
暇なやつはこっちもつないでみれ
どっちかというと雑談メインな気もするが

242 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 10:37:00 ]
>>232
Webチャットが嫌でなければここ↓で聞くと良いかも。
www.lingr.com/room/gauche

243 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:10:36 ]
尼で"プログラミングGauche"の予約して、確か発送予定が今日ぐらいになってたけど…
今確認したら4/8-4/22とかになってた…。何コレ?初版割当分売切れ?(3/9予約した)

244 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:16:02 ]
cbookに汁

245 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:36:50 ]
>244
cbookには品切れって書いてある。すごい人気本だなw
とりあえず本屋いってくるよ。

246 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:38:11 ]
>>243
おれには今尼から到着。注文は1日前の3/8。意外と明日あたりくるかもYO。

247 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 13:46:08 ]
(< 入荷数 予約数) だったみたい。キャンセルしちまった。尼の順位が200位以内に入ってたんだけどw



248 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 14:03:28 ]
>>247
ありゃま。店頭にダッシュで買いに行かないと一ヶ月待ちかも。
まあ、あせることもないと思うけど。
おれのは修正された版が到着。
初版第1刷ってなってるけどw

shiroさん、Kahuaチーム、出版社のみなさんご苦労様でした。
とても丁寧な仕事にびっくりです。とても初版第1刷とは思えないです。
出版物って中の人しだいなんだな。

次の版では是非是非コンビネータのネタも入れて欲しいな、このスレ的にはw
あとチャーチ・ロッサーの定理とかチューリング完全性も触れたらよかったかな。
書かないまでも参考文献の紹介とか書くと初学者が勉強しやすいと思う。

249 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 14:32:08 ]
そういう話はPracticalでない本で書くべき
とっつきやすい本が欲しいのは同意

250 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:17:40 ]
karetta.jp/book-cover/programming-gauche#H-1p3ukk3
正誤表更新しました。

速報は以下で。
tudura.kahua.org/view/006056

>>248
コンビネータを入れるとしても実用的な視点が必要でしょうね。
うまい実例を思いついたら入るかも。

251 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:43:52 ]
>>249-250
コンビネータって実用的な例を紹介するのがネックかもしれませんね。
あくまでもココ最近のこのスレのネタとして流行ってるだけかもしれないしw

Emacsの設定の話なんかも載ってて初学者に優しい構成なのに参考文献が載ってないのは要改善かな。
ある程度わかってくるとググルこともできるけど。現状、最初の言語にSchemeという人が少ないから無問題?

252 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:37:24 ]
これからCommonLispかSchemeを始めようかと思ってるんですが、無謀ですか?
(プログラミング経験はほとんど無し)

253 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:39:44 ]
>>249
同意
>チャーチ・ロッサーの定理とかチューリング完全性
とかは別に他の解説書を見れば良い。実用的なプログラムをSchemeで書く
というテーマの本の方がよっぽど希少だし、貴重。

254 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:40:49 ]
無謀だが、是非やってみて感想を教えてほしい

255 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:41:02 ]
そんじゃ、あたいと一緒に逝ってみようか?

256 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:48:04 ]
>>252
そんなことないと思いますよ。
自分も単なる趣味としてLisp/Schemeでプログラミングを学び初めてみましたが、
そういう趣向でも楽しめています。
将来的に真っ当なプログラマになろうというのだと、ちょっと違うかもしれませんが…。

257 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:57:46 ]
真っ当なプログラマを目指してSchemeから始めてもいいんジャマイカ?
順序はどうあれ手続き型、関数型、オブジェクト指向、並列型などをどのみち学ぶんだし。
やりたくても高価で手が出なかった時代じゃないし、やる気と興味次第でどれから始めてもおk。



258 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:05:39 ]
勉強してても、茂木先生の言うフロー状態になかなかなれない。


259 名前:243 mailto:sage [2008/03/16(日) 17:12:23 ]
電話確認して店頭に向かい、無事入手。
自分:「在庫確認よろしいですか?フムフムヌクヌクアプアア…」
店員:「…(プッ」
自分:「い、いや、あの、プログラミング ゴーッシュ、G. A. U. C. H. Eという本ですが」
自分:「あ、ISBN番号は...」
店員:(話を遮り)「オライリーの本ですね。ありますよ(はーと)」
有隣堂++

260 名前:252 mailto:sage [2008/03/16(日) 17:17:44 ]
>>254-257
レスどもです。ちなみに30過ぎのおっさんで、趣味でやろうと思ってます。
Practical Schemeのグレアムの翻訳記事を見て面白そうだと感じました。

先ほど、Gauche本買ってきて読み始めた所ですが、「本書の"主な"対象読者が
Schemeをやった事が無いけど、他のプログラミング経験がある人」と
書いてあって、若干出鼻をくじかれた所です。


261 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:21:39 ]
Gauche本早く読みたいけど、Schemerシリーズがまだ終わってない。

262 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:24:23 ]
もうひとつの Scheme 入門
www.shido.info/lisp/idx_scm.html
が入門者にはおすすめできると思う

263 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:25:06 ]
うわあ、結構正誤あるなあ。もう少し待てばよかったかな。

264 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:40:46 ]
本屋に予約してあったGauche本を取りに行ってきた。
丁寧に書いてあるみたいだね。

265 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:04:12 ]
Windowsユーザーだからなぁ

266 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:05:44 ]
Gauche本の「18章 構文の拡張」と「21章 デバッグ」、いままで欲しかった内容で感謝感激。
「18章 構文の拡張」はグレアムの「On Lisp」を考えて記述してあるので、読後On Lispへ進むこともできる。

267 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:16:05 ]
>>266
早いなオイ



268 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:23:00 ]
>>265
本見たら、制限あるけどwinでも動くってよ

269 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:25:33 ]
>>260
(・∀・)人(・∀・)ナカーマ
俺もそんな感じで最近プログラミングに挑戦してみようと思って、まずは
SICPをのろのろ読んでるところです。
学生時代に lambda calculi やら computability theory やらを少しかじってた
ので、Lisp系がとっつきやすいかな、と思ってSchemeに挑戦中なのですが、
そのほかのプログラミング言語の知識がほぼ皆無なので、Gauche本はもう少し
鍛えてからにしようかと思っています。

270 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:27:53 ]
>265
前スレにwin神がうpしたバイナリがある

271 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:29:08 ]
>>268
えっ、解説環境はLinuxなの?シーキビだな。
この間うpしてくれたWindows用のGauche使おうと
思ってたのに。

272 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:29:30 ]
>269
漏れもSICP絶賛手間取り中なので、Gauche本読みはだいぶ遅れそう orz

273 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:30:27 ]
>>265
MzSchemeやらないか
いまFFIのことを調べたりしてるんだが、意外と簡単そうなので
自分で好きなように拡張できると思う

274 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:35:30 ]
>>269>>272
並列して読んでもいいんじゃないか?
Gauche本の方は電車は風呂の中でも読める内容だろうし。


275 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:43:53 ]
>>269
自分は逆にSICP読んでもチンプンカンプンで途中で挫折したので、
実践的なCauche本読んでからSICPに移ろうと思ってます。
LLかじってLispにたどり着いた感じ。

276 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:53:36 ]
Gauche本ってScheme版のRails本みたいなのかと思ってたけど、
どっちかって言うとThe Ruby Wayに近い感じだった。
入門者は「第2部 Gaucheの基礎練習」をしっかり読めばSICPとかに進めます。
この本の売りはなんと言っても第3部の実用篇でしょう。
スクリプト言語としての特徴を詳説してます。
CGIあり、データーベースありで、Kahuaの基礎も学べます。

277 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:00:08 ]
>>270
公式ページにもWinバイナリ一応あるがな。(´・ω・`)
practical-scheme.net/gauche/download-j.html

前スレで上がってたのはslibとかwilikiとか同梱してある分だけ便利だけど。
↓に更にglintも同梱したのがおいてあるぞ。
saito.s4.xrea.com/wiliki.scm?Gauche



278 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:05:28 ]
>>276
第3部はおもしろいな。15章でSXMLの説明があるのにはたまげた。

279 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:12:41 ]
結局、活用範囲はWebかよ。。

280 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:16:00 ]
なぜかMacのEmacsの写真w

281 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:18:07 ]
WebアプリとただのWebサイト構築は違うけどね。

282 名前:デフォルトの名無しさん [2008/03/16(日) 19:29:35 ]
.emacsの設定をプログラミングGaucheのサポートサイトからコピペした。
でも日本語が文字化け。

gosh -V
Gauche scheme interpreter, version 0.8.13 [utf-8,pthreads]

(modify-coding-system-alist 'process "gosh" '(utf-8 . utf-8))
でダメだったので、以下も追加した。

(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)

それでも、run-schemeでは文字化けします。
どうすれば日本語表記出来ますか?

283 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:38:32 ]
日本語でおk

284 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:42:46 ]
LispBox みたいな SchemeBox あるいは GaucheBox が必要だな。
Emacs とかライブラリとか全部込み込みのヤツ。

285 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:58:00 ]
全部込み込みのパソコンにはWindowsが入ってるんだけどね。

286 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 20:05:52 ]
Meとか98とか95とかNTでなければ
coLinuxを使えばいいじゃない

287 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 20:20:07 ]
おばかさん



288 名前:デフォルトの名無しさん [2008/03/16(日) 21:01:28 ]
282です。
解決策が見つからなければ、euc-jpのエンコードで再コンパイル→インストールしてGaucheを使います。

289 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:03:04 ]
(person=? >>249 >>253)
=> #t

290 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:07:24 ]
VMWareでFedora Core4でも大丈夫?

291 名前:デフォルトの名無しさん [2008/03/16(日) 21:11:16 ]
282・288です。
なんか分かってきました。
OSがVine Linuxだからのような気がしてきました。
他のディストリビューションならOKなのかな?


292 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:15:01 ]
>>291
ttp://softsupport.seesaa.net/article/25598905.html
Emacs21とかでUTF-8+日本語扱うのに苦労したって人のブログ。
参考になるかわからんが。
たぶん、ディストリビューションの問題じゃないと思われ。

293 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:15:05 ]
>>291
emacsがutf-8のBOM付きと無しの両方をちゃんと扱えるか確認してみろ。

294 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:17:21 ]
BOM付きが扱えないだけならemacsの機能拡張に必要なものだけ落としてくればいいね。

295 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:17:40 ]
VirtualBox+Ubuntuでmake&test通って問題なくインストールできた。
しかし肝心の本が届かない。

296 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:24:00 ]
Gauche本5章に「5.2 マルチバイト文字の利用」とあるけど、
rubyのRSpecみたくプログラムから切り離すのが主流になってるから、
ちょっと逆行してるなぁ。本の最初の方で紹介するのイクナイ。

297 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:35:28 ]
俺も読み初めたばっかりだが、貴方のいう事がよくわからん。

RSpecってナニ?マルチバイト文字の利用をプログラムから切り離すって?
逆行とは? Ruby ではマルチバイトの利用がもっと便利ってこと?




298 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:42:30 ]
>>297
わからんならわからんでええやん。逝ってよし。

299 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:44:34 ]
「逝ってよし」なんてすごい久しぶりに見た
年代モノだよね

300 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:52:11 ]
>>299
激同。最近はググレが流行中w
そのうちgoogleもなくなるんだろうか?

301 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:54:22 ]
RSpecはBDDなテスト用フレームワーク。
故に>>296はイミフ。

Rubyが文字列の扱いがCSIなことを言いたいんだろうか?


302 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:57:34 ]
>>301
どこが「故に」かオマエがイミフだw

303 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:09:33 ]
rubyで日本語を切り離すのGetText使うかな?まあ、スレちかな。

304 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:30:52 ]
RSpecとマルチバイト文字か…。本人と>>302には理解できる関係があるのかな。
とりあえず>>302に説明希望。

305 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:31:13 ]
ttp://blog.livedoor.jp/dankogai/archives/50737353.html

あたりを読んでみるとrubyも昔のperlみたくnkfでやってる。
でも特定の条件では上手く動かないらしい。
もしかするとこの辺でRSpecとか?

306 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:33:06 ]
>>304
第三者のオレになんで説明希望するの?>>301だろw

307 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:35:03 ]
もういいって。よそでやれよ。



308 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:42:09 ]

と、知ったかぶって引っ込みのつかなくなった>>297 = >>301が言っておりますw

309 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:55:01 ]
2ちゃんねる的には、いいふいんきですね

310 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:05:34 ]
dankogaiは1時間読んでSICPの副読本に最適と書いてるが。

311 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:27:45 ]
   _,,....,,_  _人人人人人人人人人人人人人人人_
-''":::::::::::::`''>   ゆっくりしていってね!!!   <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
 |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ     __   _____   ______
 |::::ノ   ヽ、ヽr-r'"´  (.__    ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_  _,.ヘーァ'二ハ二ヽ、へ,_7   'r ´          ヽ、ン、
::::::rー''7コ-‐'"´    ;  ', `ヽ/`7 ,'==─-      -─==', i
r-'ァ'"´/  /! ハ  ハ  !  iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ レリイi (ヒ_]     ヒ_ン ).| .|、i .||
`!  !/レi' (ヒ_]     ヒ_ン レ'i ノ   !Y!""  ,___,   "" 「 !ノ i |
,'  ノ   !'"    ,___,  "' i .レ'    L.',.   ヽ _ン    L」 ノ| .|
 (  ,ハ    ヽ _ン   人!      | ||ヽ、       ,イ| ||イ| /
,.ヘ,)、  )>,、 _____, ,.イ  ハ    レ ル` ー--─ ´ルレ レ´


312 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:57:49 ]
とりあえずインストールはできた。VMware Fedora Core4

313 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:13:55 ]
>>291

> 他のディストリビューションならOKなのかな?

fedora 8だけど問題ないよ.

"GNU Emacs 22.1.2 (i686-pc-linux-gnu, GTK+ Version 2.12.3)
gosh -V
Gauche scheme interpreter, version 0.8.13 [utf-8,pthreads]

gosh> (display "日本語表示テストです.")
日本語表示テストです.#<undef>
gosh> (string-ref "Scheme処理系" 8)
#\系
gosh> (list->string (reverse (string->list "アルゴリズム")))
"ムズリゴルア"
gosh>

314 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 02:36:32 ]
すげえ関数考えたぞ!





(omaemona itteyoshi)

315 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 04:58:44 ]
式ですやん

316 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 07:33:14 ]
Emacs22はUTF-8に対応してるけど
Emacs21は対応してないってだけでしょ
Mule-UCSを入れないと

317 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 08:15:19 ]
というか、22以下は全部Mule-UCS入れた方がいいと思う。
入れるとビックリするほど遅いが。








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<87KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef