1 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:10] 過去スレ Part1: piza2.2ch.net/tech/kako/987/987169286.html Part2: pc.2ch.net/test/read.cgi/tech/1002584344/ Part3: pc.2ch.net/test/read.cgi/tech/1008220265/ Part4: pc.2ch.net/test/read.cgi/tech/1016211619/ Part5: pc3.2ch.net/test/read.cgi/tech/1023091882/ Part6: pc3.2ch.net/test/read.cgi/tech/1031560687/ Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html Part8: pc2.2ch.net/test/read.cgi/tech/1058263391/ Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ 前、"Schemeスレはあるのになんでcommonlispスレはないの?"とか言って別のスレを建てた大馬鹿者がいたので、 標題にCommonLispと付けておきました。 Lispの話題でCommonLisp,Scheme,EmacsLisp(専用スレッドがある)以外のものが出ることはこのスレの歴史上でも 稀なので問題はほとんどないかと思います。 関連リンクは>>2-10 あたり
263 名前:デフォルトの名無しさん mailto:sage [04/02/29 19:34] メタルスライムがあらわれた メタルスライムAは逃げ出した
264 名前:デフォルトの名無しさん mailto:sage [04/02/29 20:05] バックトレースってデバッグでは便利だと思うんだけど Scheme の人は 要らないのかな?拾ってきたプログラムがエラー吐いてとまったときと かバックトレースが空だとちょっと悲しいんだけど。 >>257 なんか安心して使える trace の実装とかあります?処理系によっては 付いてるみたいだけど。付いてないのも結構あるので困るんですが。
265 名前:デフォルトの名無しさん mailto:sage [04/02/29 22:05] >>264 そういうのはどう転んでも処理系依存だしなあ。 いつでも外せるassertみたいなの埋め込むぐらいしか。 昔さわったminischemeのトレースはトレース対象を出力用の フック関数で挟む方式だった。後付けマクロ。 関数突入・脱出でトレース出力するので、 トレース対象関数は自然と末尾再帰が外れて山形の出力になる。 ただし内部関数、名無し関数には使えない。
266 名前:デフォルトの名無しさん [04/03/01 12:48] foo,bar,baz,mumble,glorp これって何に由来してんだぁ?
267 名前:デフォルトの名無しさん mailto:sage [04/03/01 13:21] >>266 foo と bar は RFC で定義されているよ
268 名前:デフォルトの名無しさん mailto:sage [04/03/01 14:02] RFCは冗談も混ざっているからなぁ。
269 名前:デフォルトの名無しさん [04/03/01 23:33] MLの有名な本より写経 A Lisp hacker says: 'Since the integers are a subset of the real numbers,the distinction between them is wholly artificial --foisted on us by hardware designers.ML should simply provide numbers, as Lisp does, and automaticaly use integers or reals as appropriate.' Do you agree? What considerations are there? MLerはいろいろ言うだろうが、Lisperはどう答える?
270 名前:デフォルトの名無しさん mailto:sage [04/03/02 00:00] なにを勿体つけてるんだ? ML for the working programmer の ex2.2 って言えばいいじゃん。翻訳もせずに丸投げなあたり宿題か何か? まぁ実際 ML にまでそうしろと言う Lisper は少ないと思うよ。 NetNews でも ML の数値周りが気に食わないと噛み付いてた Lisper は居たけど ML に Lisp 式の数値にしろ!とまで言うやつぁ少ないだろ。 理由はなんで ML がそうしてるかを考えればわかるだろ。
271 名前:デフォルトの名無しさん [04/03/02 00:08] まあ、そう熱くならんでも。 型無しのありがたみって何だろうな、というネタフリなんよ。
272 名前:デフォルトの名無しさん mailto:sage [04/03/02 00:36] 本からのコピペ程度でいちいち age るのがウザイんだよ。 ML スレでやれば?型無しのありがたみは無いってことでいいからさ。 デバッグ方法が聞けてウマーと思ってたのに、そんなつまらんネタ振るな。 だいたいここは Lisp 総合スレなんだ、型有りの Lisper 連中からすりゃ ハァ?って話題だろーが。全部の LISP 型無しという狭い見識をなんとか してから出直してきてくれ。
273 名前:デフォルトの名無しさん mailto:sage [04/03/02 00:37] dat 落ちした前スレを html 化してもらいました。 LISP Scheme Part9 ruku.qp.tc/dat2ch/0403/01/1069594582.html
274 名前:デフォルトの名無しさん [04/03/02 12:24] 強い型付けのないSchemeのような言語には 良いところもあるよなぁ、ということを言いたかった だけなんだがなぁ...
275 名前:デフォルトの名無しさん mailto:sage [04/03/02 12:49] まぁ、あんまり気にすんなや。
276 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:09] 健全なマクロ VS 不健全なマクロ 1 :デフォルトの名無しさん :04/03/02 19:14 (ちょっと入れ子でスレ立たせてくれや) 健全なマクロって不便だし、不健全なマクロの貸しコートもささくれ立っていてなんかイヤ。 だから、健全なマクロに「不健全」ていうオプション欲しいよな? お前ら、どう思いますか。
277 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:14] 健全なマクロ VS 不健全なマクロ 2 :デフォルトの名無しさん :04/03/02 19:15 2get
278 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:16] 「不健全」というと健全なのより悪いイメージがあるからな〜。 個人的にはつまらないマクロと楽しいマクロだな。変数キャプチャ があった方がいろんな意味で楽しい。はまるとデバッグも愉快な事 になるしな。アヒャヒャヒャヒャ。
279 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:20] define-unhygienic-syntax ;-)
280 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:56] defmacro/define-macroの方が簡単だし構造見えるし作りやすい。 gensym命。でもSRFIのhygienicマクロそのまま読めない罠。 まあhygienic作る暇あったら正規表現でも統一しなさいってこった。
281 名前:デフォルトの名無しさん mailto:sage [04/03/02 20:28] >>278 define-boring-macro/define-amusing-macro とか? まぁ変数キャプチャを防いだところで世間の見る目はかわらんよね。 R... な言語の作者だってマクロはダメポって言ってたけどこれは 変数キャプチャ云々の話じゃないわけだし。
282 名前:デフォルトの名無しさん mailto:sage [04/03/02 22:08] >>281 世間の見る目って?どんな風に見られてるの? m@zはどうしてマクロはダメポって言ってるの?
283 名前:デフォルトの名無しさん mailto:sage [04/03/02 22:21] >>282 「神聖なる構文を一般利用者が触るなんてとんでもない。そんなの混乱の元だよ!」 ユーザビリティの問題だとかいってたあたりの事だと思われ。確認してないから 不正確かも知れんが探すのマンドクサ(括弧の話だったかも?)
284 名前:デフォルトの名無しさん mailto:sage [04/03/02 22:26] あのひとはユーザビリティって言葉好きだよね
285 名前:デフォルトの名無しさん mailto:sage [04/03/02 22:42] その割にRubyて妙な構文だらけだね え、LISPには劣るって!?
286 名前:デフォルトの名無しさん mailto:sage [04/03/02 23:02] あぁ!?神聖なる構文? しゃらくせえ。 おれ様が欲しいのは圧倒的な自由なんだよ! Schemeは聖域無き言語だぜ! ユーザビリティーだと? ヌルイ!ヌルイよそれ! ちょーヌルイよ! あーヌルイ。母さーん、火ぃつけてくれ。 ふぅー、ぬるぽ。
287 名前:デフォルトの名無しさん mailto:sage [04/03/02 23:05] C言語みたいな、ちょっと小汚い言語の方が好かれるかもなあ
288 名前:デフォルトの名無しさん mailto:sage [04/03/02 23:58] vimのVIlispってプラグインまともに動かせてる人いる? 設定のコツを教えてくれ。 \esで評価しようとするとvimが固まるんだけど…
289 名前:デフォルトの名無しさん mailto:sage [04/03/03 20:35] ( ・∀・) | | ガッ と ) | | Y /ノ 人 / ) < >__Λ∩ _/し' //. V`Д´)/ (_フ彡 / ←>>286
290 名前:デフォルトの名無しさん mailto:sage [04/03/04 14:28] Lispをよく知る前は、Lispは再帰が命と聞いた。 ↓ Common Lispを習ったら、再帰はC++と同じくらいしか使わないなと思った。 ↓ Schemeを習ったら、「やっぱりLispは再帰が命?」と思った。
291 名前:デフォルトの名無しさん mailto:sage [04/03/04 14:39] CPS (continuation passing style)ってSchemerの人達が発明したコーディングスタイルなのかな? 末尾再帰の最適化が保証されていないと、いやがる人がいそうな書き方だよね。 実際は、メモリを結構積んでいるマシンが増えたから、再帰が多少深くなったって、困る場面ってそうそう ないような気もするけど。
292 名前:デフォルトの名無しさん mailto:sage [04/03/04 16:36] コンパイラ関連でよく出てくるよ>CPS
293 名前:デフォルトの名無しさん mailto:sage [04/03/04 23:34] >>291 CPS ってもう少し汎用的な概念だと思う。 state パターンも原始的な CPS だと言えなくもない。 末尾再帰を使うのはたまたま scheme が末尾再帰を正当化してくれているから。
294 名前:デフォルトの名無しさん mailto:sage [04/03/05 13:44] www.lispworks.com/reference/HyperSpec/Body/t_std_cl.htm > System Class STANDARD-CLASS > Class Precedence List: standard-class, class, standard-object, t (subtypep 'standard-class 'standard-object) => NIL T ;; clisp => NIL T ;; cmucl => T T ;; ecl => T T ;; lispworks なにこの処理系たち… 久しぶりにaclをインストールしたら、 ./alisp dlopen(/tmp/acl62_trial/libacli623t.so, mode) error: /tmp/acl62_trial/libacli623t.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference と言って立ち上がらない…
295 名前:デフォルトの名無しさん mailto:sage [04/03/05 15:28] CVS 鯖のトラブルで遅れれてるけど CMUCL 19a は↓だよ.がんがれ Martin ! (Martin は週末に時間があったらがんがるそうです) CLOS based on Gerd's PCL 2003/06/18 09:23:09 * (subtypep 'standard-class 'standard-object) T T
296 名前:294 mailto:sage [04/03/05 15:47] clisp 2.28 (released 2002-03-03) cmucl CLOS 18e (based on PCL September 16 92 PCL (f)) ecl 0.9c lispworks Version 4.3.6 でした。 そういえば、cmuclはCLOSをだれか(Martinていう人?)が速くなるように書き直し ているという話を聞きました。 clispとか報告したほうがいいのかな…。fixも一緒じゃないとなんとなく気が引ける んだよね。一般的にconformance bugって重箱の隅をつつきだしたら結構あるし。
297 名前:デフォルトの名無しさん mailto:sage [04/03/05 15:54] あれっ、clisp 2.28って古すぎですね。今は2.32か。
298 名前:デフォルトの名無しさん mailto:sage [04/03/05 16:01] GNU CLISP 2.32 (2003-12-29) [1]> (subtypep 'standard-class 'standard-object) NIL ; T
299 名前:デフォルトの名無しさん mailto:sage [04/03/05 16:06] いや今 CMUCL はメインの CVS 鯖がダウンしてて Martin タソが準備してるってだけ。 はやくなおらないなか〜。PCL をいじってたのは Gerd Moellmann です。だから Gred's PCL。 19a からこっちになる予定。
300 名前:デフォルトの名無しさん mailto:sage [04/03/05 16:31] 今、cl-ppcreをDebianシステムにインストールしたんだけど、 apt-get install cl-ppcre で、clisp、cmucl、sbcl-mtなどインストールされているコンパイラ用にちゃんと コンパイルしてインストールくれるんだね。 しばらくDebianにさわってなかったけど、なんだか、とんでもなく便利になってきている気がする。 debパッケージになっているライブラリも多いし。Debian使っているLisperが多いのかな。 たしかcmuclの開発者もdebianの人が多かったよね。 あと、Redhat(Fedora?)だとメモリチェッカか何かの影響でcmuclが動かない(かった)という話も きいたことがあるね。今でもそうなのかな?
301 名前:デフォルトの名無しさん mailto:sage [04/03/05 17:16] >>299 同意。 早く復活しないとSBCLに(ry
302 名前:デフォルトの名無しさん mailto:sage [04/03/05 17:23] たしかに、現状でSBCLの方が開発に勢いがあると言ってた人がいたな。
303 名前:デフォルトの名無しさん mailto:sage [04/03/05 18:56] CMUCL派生なのに、ベンチマーク結果が大きく違うのは何でだろ。 www.cons.org/cmucl/benchmarks/index-print.html
304 名前:デフォルトの名無しさん mailto:sage [04/03/06 13:30] >>303 俺にはだいたい同じような結果に見えます。sbcl vs cmucl
305 名前:デフォルトの名無しさん mailto:sage [04/03/06 19:38] block compile って何ですか?
306 名前:デフォルトの名無しさん mailto:sage [04/03/07 11:53] >>305 どんな文脈で、でてきた言葉ですか?
307 名前:デフォルトの名無しさん mailto:sage [04/03/07 17:59] たぶんcmuclじゃないかな。 ftp://ftp.averillpark.net/cmucl/doc/cmu-user/compiler-hint.html#toc161 を熟読。
308 名前:デフォルトの名無しさん mailto:sage [04/03/08 20:32] Gaucheはmingw用でいいからWindows向けのmakefile書いて欲しいなあ。 cygwin入れてconfigure環境作るのマンドクサ
309 名前:デフォルトの名無しさん mailto:sage [04/03/08 21:04] >>309 確かに。漏れもGaucheのためにcygwin入れたよ。
310 名前:305 mailto:sage [04/03/08 22:55] >>306-307 レス遅くなりまして済みません。SBCL と CMUCL の比較で、SBCL はまだ block compile が出来ないよみたいな記述があったので、お聞きしました。 >>307 どうもありがとうございます。読ませて頂きます。
311 名前:デフォルトの名無しさん mailto:sage [04/03/08 23:07] block compileには何のメリットが?
312 名前:189 mailto:sage [04/03/12 00:29] 以前、>>197-198 でコードを提供していただいた者です。 >>211 の後で、ドットリストも扱えるように改造して、欲しい仕様の物ができました。 それを、いま移植作業を進めているプログラムに同梱したいのですが、著作権表記や ライセンスなどでご要望がありましたらお知らせください。 (元プログラムがBSDライセンスなので、それと同じで配布できるとありがたいのですが)
313 名前:197 mailto:sage [04/03/12 01:37] >>312 好きにしていいよ。
314 名前:デフォルトの名無しさん [04/03/12 16:59] このスレ廃れたな....
315 名前:デフォルトの名無しさん mailto:sage [04/03/12 18:59] わざわざ言うほどでもない
316 名前:デフォルトの名無しさん mailto:sage [04/03/12 19:34] いや、初心者スレの登場でレスが分散して、ここ数日何か寂しいなあと感じたので。
317 名前:デフォルトの名無しさん mailto:sage [04/03/12 19:37] 淋しがりやさんなのね
318 名前:デフォルトの名無しさん mailto:sage [04/03/12 19:39] 新ネタがくれば ワッシワッシ盛り上がるよ
319 名前:デフォルトの名無しさん mailto:sage [04/03/12 19:44] 両方見てれば別に寂しくないじゃん。 ところで >>189 は何を移植してるんだろ。 期待して待つぞ〜
320 名前:デフォルトの名無しさん mailto:sage [04/03/12 20:56] ↓新ネタ登場!
321 名前:189 mailto:sage [04/03/12 22:37] >>319 khdd.net/kanou/kangae/2003/Apr.html#12.1.4 をご覧ください。
322 名前:デフォルトの名無しさん mailto:sage [04/03/13 14:20] >>321 リンク先みても(12.1.4というアンカー名が見つからない)、いまいち分からないのですが、フォント関連のアプリですか?
323 名前:デフォルトの名無しさん mailto:sage [04/03/13 15:30] khdd.net/kanou/kangae/2004/Mar.html#12.1.4 と間違えたんだろ
324 名前:デフォルトの名無しさん mailto:sage [04/03/13 16:06] なるほろ
325 名前:デフォルトの名無しさん mailto:sage [04/03/13 17:15] #+cmu (loop for i from 128 to 255 do (set-syntax-from-char (code-char i) #\a)) みたいに処理系固有の処理は *features* を使うとイイと思われ。
326 名前:デフォルトの名無しさん [04/03/13 21:52] こういうのを高階関数を使って綺麗に書けませんか? (lambda (a b) (> (car a) (car b)))
327 名前:デフォルトの名無しさん mailto:sage [04/03/13 22:55] >>326 逆に汚いかも (lambda (a b) (apply > (map car (list a b))))
328 名前:デフォルトの名無しさん mailto:sage [04/03/13 23:29] (> a b :key #'car) みたいに書きたいということじゃないの。
329 名前:326 mailto:sage [04/03/14 00:03] 説明不足ですみません。↓こういう用途で使いたいのです。 (sort '((5 a) (3 b) (4 c)) (lambda (a b) (> (car a) (car b)))) map,cut,apply,compose等を使って相当考えたんですが lambdaを使わないで表現できません・・・ 綺麗or簡潔にするのは無理な気がしました。 でも汚い例ですら考えつかなかったので悔しいです。
330 名前: [04/03/14 01:35] (define (cons x y) (lambda(m)(m x y))) (define (car z) (z (lambda (p q) p))) としたとき、(car (cons x y)) が x を生じることを 証明せよ、とSICPに言われたんですけど、よくわからんのです。 頭がこんがらがって。 mzscheme というのを使ってるのですが、動きを追うための 機能ってないんでしょうかね。
331 名前:デフォルトの名無しさん mailto:sage [04/03/14 01:49] 言語レベルを落とせばトレースできたような気がしなくもないが 普通に式変形してけばOKかと (car (cons x y)) => (car (lambda (m) (m x y))) => ((lambda (m) (m x y)) (lambda (p q) p))) => ((lambda (p q) p) x y) => x
332 名前: [04/03/14 01:59] >>331 あ〜、なるほど。ありがとうございます。 すっきりしました。わたしまだ基本ができてないっすね。 精進します。
333 名前:デフォルトの名無しさん mailto:sage [04/03/14 09:22] >>329 (sort '((5 a) (3 b) (4 c)) #'> :key #'car)
334 名前:326 mailto:sage [04/03/14 15:16] >>333 おおっ ありがとうございます。 Schemeは無理ですか?
335 名前:デフォルトの名無しさん mailto:sage [04/03/14 15:27] sort関数自体の仕様による。 どうしても必要なら (sort '((5 a) (3 b) (4 c)) > car) という引数を受け付ける様にするとか。 car>という関数でも作るとか。
336 名前:デフォルトの名無しさん mailto:sage [04/03/14 15:36] (lambda a (apply > (map car a)))
337 名前:326 mailto:sage [04/03/14 16:04] >>336 こんなことができたのですか。これなら満足です。 皆さんどうもありがとうございました。
338 名前: [04/03/14 23:11] (define (reverse ls) (if (null? ls) ls (append (reverse (cdr ls))(list (car ls))))) とやると、リストがさかさまになるらしいのですが、動きは どうなるのでしょう。 最初の引数が(1 2 3)として、 (append (reverse (cdr (1 2 3))(list (car (1 2 3)))) (append (reverse ((2 3))(list (1))) (append (reverse ( (cdr (2 3)))) (list (car (2 3)))) (append (reverse (3))(list (2))) となって、あれ?となります。けど実行するとさかさまになっている なんかわからないです。だれか動き方を教えてください!
339 名前:デフォルトの名無しさん mailto:sage [04/03/14 23:23] >>338 (reverse '(1 2 3)) (append (reverse '(2 3)) '(1)) (append (append (reverse '(3)) '(2)) '(1)) (append (append (append (reverse '()) '(3)) '(2)) '(1)) (append (append (append '() '(3)) '(2)) '(1)) (append (append '(3) '(2)) '(1)) (append '(3 2) '(1)) '(3 2 1)
340 名前: [04/03/14 23:39] >> 339 あ! append 自体が入れ子になるわけですね! やっとわかった!ありがとうございました!
341 名前:デフォルトの名無しさん mailto:sage [04/03/15 15:45] だれか、これ知っていますか? ECLと似たアプローチだと思うけど、評判はあまり聞かないな。 WCL 3.0 - Embeddable Common Lisp for Linux wcl.kontiki.com/ 何でもいいから情報キボンヌ
342 名前:デフォルトの名無しさん mailto:sage [04/03/16 01:13] 前スレ 422 からの Y combinator は面白い。 関係ないけど、クロージャをオブジェクトと見立てて self や this 相当の機能を実現しようと するとマクロを使うか引数で渡してあげるしかないのかな。
343 名前:デフォルトの名無しさん mailto:sage [04/03/16 03:32] >>342 letrec とか使えば、とりあえず自分を参照できるけど。 (let* ((foo (let ((val 1)) (define (self sym) (cond ((eq? sym 'val) val) ((eq? sym 'self) self))) self)) (bar (let ((super foo) (val 2)) (define (self sym) (cond ((eq? sym 'val) val) ((eq? sym 'self) self) ((eq? sym 'super) super) (t (super sym)))) self))) (list (bar 'val) ((bar 'self) 'val) ((bar 'super) 'val))) => (2 2 1) とか、こういう話?
344 名前:デフォルトの名無しさん mailto:sage [04/03/16 23:00] >>343 そっか、let で括ってあげれば良いんですね。lambda だけでと考えてました。
345 名前:デフォルトの名無しさん mailto:sage [04/03/17 13:34] 頼むから、CMUCLのCVS早く復旧してくれよ。 もう二ヶ月以上も経過してるぞ。
346 名前:デフォルトの名無しさん mailto:sage [04/03/17 13:58] ミラーは全部生きてるわけだし普通のユーザーにはそれほど不都合は 無いでしょ。Martin タンだってボランティアなんだしあまりワガママを 言うもの気の毒じゃん。どうしても文句言いたきゃ cmucl-devel で騒ぐ ほうか良いと思われ。
347 名前:デフォルトの名無しさん mailto:sage [04/03/17 15:59] >Martin タンだってボランティアなんだしあまりワガママを言うもの気の毒じゃん。 なのに >どうしても文句言いたきゃ cmucl-devel で騒ぐほうか良いと思われ。 ってのは一番ヤバい選択なような。
348 名前:デフォルトの名無しさん mailto:sage [04/03/17 16:53] 自分では何もする気がないのにただ「さっさと復旧汁」とか言いたいだけなら 黙ってたほうが賢明かと。別に配布が完全停止ってわけでもなくデベロッパーは 黙々と作業してるわけで。でも建設的な提案(回線とセットアップ済みハードウェア を提供とか)があるなら言ってみれば。
349 名前:デフォルトの名無しさん mailto:sage [04/03/17 17:28] >自分では何もする気がないのにただ「さっさと復旧汁」とか言いたいだけなら黙ってたほうが賢明かと。 俺はそうは思わない。以上 >でも建設的な提案(回線とセットアップ済みハードウェアを提供とか)があるなら言ってみれば。 なんで建設的な話? 不毛な雑談を認めないのかよ。 建設的な提案があればこんなところではなくcmucl-develへ投稿するところだが。
350 名前:デフォルトの名無しさん mailto:sage [04/03/17 17:38] Lisperはまじめっこが多いから不毛な雑談はできません
351 名前:デフォルトの名無しさん mailto:sage [04/03/17 17:47] ナ ゝ ナ ゝ / 十_" ー;=‐ |! |! cト cト /^、_ノ | 、.__ つ (.__  ̄ ̄ ̄ ̄ ・ ・ ,. -─- 、._ ,. -─v─- 、._ _ ,. ‐'´ `‐、 __, ‐'´ ヽ, ‐''´~ `´ ̄`‐、 / ヽ、_/)ノ ≦ ヽ‐'´ `‐、 / / ̄~`'''‐- 、.._ ノ ≦ ≦ ヽ i. /  ̄l 7 1 イ/l/|ヘ ヽヘ ≦ , ,ヘ 、 i ,!ヘ. / ‐- 、._ u |/ l |/ ! ! | ヾ ヾ ヽ_、l イ/l/|/ヽlヘト、 │ . |〃、!ミ: -─ゝ、 __ .l レ二ヽ、 、__∠´_ |/ | ! | | ヾ ヾヘト、 l !_ヒ; L(.:)_ `ー'"〈:)_,` / riヽ_(:)_i '_(:)_/ ! ‐;-、 、__,._-─‐ヽ. ,.-'、 /`゙i u ´ ヽ ! !{ ,! ` ( } ' (:)〉 ´(.:)`i |//ニ ! _/:::::::! ,,..ゝ! ゙! ヽ ' .゙! 7  ̄ | トy'/ _,,. -‐ヘ::::::::::::::ヽ、 r'´~`''‐、 / !、 ‐=ニ⊃ /! `ヽ" u ;-‐i´ ! \::::::::::::::ヽ `ー─ ' / ヽ ‐- / ヽ ` ̄二) /ヽト、 i、 \:::::::::::::::..、 ~" / ヽ.___,./ //ヽ、 ー
352 名前:デフォルトの名無しさん mailto:sage [04/03/17 17:53] 別に 348 の見解をそんなに気にする事はないだろう。 不毛な雑談でもオモシロければイイ。同じネタのループはイクナイ。 で CVS の復旧マダーな話は「こんなところ」でも既出なわけだが。
353 名前:デフォルトの名無しさん mailto:sage [04/03/17 18:15] じゃあ、次はCVSのクラッキンg(ry
354 名前:デフォルトの名無しさん mailto:sage [04/03/18 08:43] >>344 展開してみた。 ((lambda (foo) ((lambda (bar) (list (bar 'val) ((bar 'self) 'val) ((bar 'super) 'val))) ((lambda (super val) ((lambda (self) (self self)) (lambda (self0) ((lambda (self1) (lambda (sym) (cond ((eq? sym 'val) val) ((eq? sym 'self) self1) ((eq? sym 'super) super) (#t (super sym))))) (lambda (sym) ((self0 self0) sym)))))) foo 2))) ((lambda (val) ((lambda (self) (self self)) (lambda (self0) ((lambda (self1) (lambda (sym) (cond ((eq? sym 'val) val) ((eq? sym 'self) self1)))) (lambda (sym) ((self0 self0) sym)))))) 1)) => (2 2 1) ; ところで、 closure を object と見立てるって、こういうので合ってるの?
355 名前:デフォルトの名無しさん mailto:sage [04/03/18 11:13] まぁ正直 let 使ったほうが見やすいわけだが。わざわざ展開してあげるとは >>354 も人が良いねぇ。let や let* は lambda で書けるだろゴルァ!! で 終わりそうなもんだが。まぁ >>344 よ、基本的に (let ((x 1) (y 2)) (+ x y)) => ((lambda (x y) (+ x y)) 1 2) (let* ((x 1) (y 2)) (+ x y)) => ((lambda (x) ((lambda (y) (+ x y)) 2)) 1) でも流石に let 使ったほうがわかりやすいので大抵の Lisp にゃ let や let* が用意されてるわけだ。
356 名前:デフォルトの名無しさん mailto:sage [04/03/18 12:56] むしろ define(= letrec) を展開してることに意味があったり。
357 名前:デフォルトの名無しさん mailto:sage [04/03/19 14:42] The Seasoned Schemerってどうかな。安いから買おうかな。littleは持ってるんだけど。 www.amazon.co.jp/exec/obidos/ASIN/026256100X/249-6997664-7938729 と思ったら、The Little Mler などというもっと面白そうな本が...
358 名前:デフォルトの名無しさん [04/03/22 14:37] Lispがそんなにすごいなら ---If Lisp Is So Great--- www.shiro.dreamhost.com/scheme/trans/iflisp-j.html
359 名前:デフォルトの名無しさん mailto:sage [04/03/22 18:54] JavaとかC++とか手続き型で一般的なオブジェクトの メソッド呼び出し形式が書ける様になれば普及すると思うんだけど、 どうかな。 シングルメソッドディスパッチでいいし。 つまりこういうこと (object.method param) ;; object->method(param) (object->method param) ;; object->method(param) (setf object->prop value) ;; object->prop = value .と->はどっちでもいいけど。.はdot-pairと被るから->かな。 マクロ文字でなんとかなったりする? でもメソッド呼び出しをネストさせると ((object->method param1)->method param2) ;; object->method(param1)->method(param2) 変な違和感がある。 そもそも->はsuffix演算子だから、本来ならLISP流に書くと (-> (-> object method param1) method param2) こうなる。 でもこれじゃ使う人いないだろう。 まいった。
360 名前:デフォルトの名無しさん mailto:sage [04/03/22 23:11] >>358 >(だが、気をつけ給え。その論理の行き着く先はWindowsだ。) ワロタ 広まるのが悪いみたいな言い方だな(w
361 名前:デフォルトの名無しさん mailto:sage [04/03/23 00:06] >>359 . や -> は繋ぎの役割しかしてないから、括弧と両方あるのは冗長。省こう。 object と getter や method の順序は、lisp だと procedure が前だから、 (setf (prop obj) value) と ((method obj) param) あと方のは中の括弧はなくてもいいか。そうすると、(method obj param)。 あれ、両方とも今のままだ。
362 名前:デフォルトの名無しさん mailto:sage [04/03/23 00:18] (だが、気をつけ給え。その論理の行き着く先はloopだ。)
363 名前:デフォルトの名無しさん mailto:sage [04/03/23 09:28] loop keywordをリスト中にいきなり出てくるキーワードではなくて、ローカルマクロ みたいに見えるように定義したら、loop嫌いな人も減ったかな。 (loop (for item in list) (collect item))