- 1 名前:デフォルトの名無しさん mailto:sage [04/11/25 21:48:56]
- lispを触ってみたい入門者のQ&A
初心者のQ&A 本スレでは恥ずかしくて聞けない人のQ&A 本スレは高度すぎて割り込めない人のQ&A linuxでなくてwindowsでやりたいんですが・・・Q&A lispを使用してC#やJAVAの代替にするための方法(おまけ) ま、ゆっくりたりましょう。 「いいものの本質は、いかなる時代においても変わらない」byパワーズ
- 331 名前:デフォルトの名無しさん [05/03/01 20:56:04 ]
- 引数がアトム型なら"atom"、そうでなければ"false"と表示するマクロを
作成したいんですが、 (defmacro macro(x) `(if,(atom ,x) (print "atom") (print "false") ) 上のようなマクロで動くんですが、 展開したときに (macroexpand-1 '(macro 'a)) -> (print "atom") となるようしするにはどうすればいいんでしょうか??
- 332 名前:デフォルトの名無しさん mailto:sage [05/03/01 22:23:19 ]
- ifを外側に出せばいいのでは。
`(print ,(if (atom x) "atom" "false"))
- 333 名前:デフォルトの名無しさん mailto:sage [05/03/01 22:32:27 ]
- (if (atom x) '(print "atom") '(print "false"))
- 334 名前:デフォルトの名無しさん mailto:sage [05/03/02 01:15:22 ]
- >>332、>>333
ありがとうございます。 マクロは凄い機能ですね、昔C++でどうしてもできなくて挫折した 機能をわずか数行で実現できました。
- 335 名前:デフォルトの名無しさん mailto:sage [05/03/02 03:02:22 ]
- scheme と common lisp ってどのくらい違うのでしょうか?
なにが決定的に異なるかでもいいですが。 schemeを覚えたからといってcommon lisp のプログラムがかけるとか、そういうことは無いのですか?
- 336 名前:デフォルトの名無しさん mailto:sage [05/03/02 03:30:08 ]
- |← これくらい →|
- 337 名前:デフォルトの名無しさん mailto:sage [05/03/02 04:14:03 ]
- >>355
個人的には、最初にぶつかる大きな違いは define-syntax と defmacro の違いかなあと思います。 call/cc は……scheme で call/cc 使いこなせるくらいになったら、 common lisp の特殊形式諸々で何とかできない……のかなあ。 私は call/cc 使いこなしてるわけじゃないので何とも。 clos も plt やら gauche を使えば、まあ、それなりに、て気もするし。 名前空間辺りは、好みはあっても、基本的にはすぐに慣れるでしょう。 たまにうっかり #' 付けたり付け忘れたりしますけど。あと funcall とか。 まあ、scheme やってればすぐ common lisp で書けるようなるかっていうと、 やっぱり慣れるのに時間は必要でしょうけれど、やってないよりは遥かに楽に入れるとは思います。
- 338 名前:デフォルトの名無しさん mailto:sage [05/03/02 05:25:45 ]
- call/ccなんて使わない奴は全く使わないでしょ
- 339 名前:デフォルトの名無しさん [05/03/04 17:44:07 ]
- lispで正規表現ってできますか?
Clispでうありたいんですけど。。。
- 340 名前:デフォルトの名無しさん mailto:sage [05/03/04 18:57:18 ]
- >>339
はいな。 clisp.cons.org/impnotes.html#regexp
- 341 名前:デフォルトの名無しさん mailto:sage [05/03/04 19:01:02 ]
- >340
さんくすです
- 342 名前:デフォルトの名無しさん [05/03/05 12:43:02 ]
- >>337
schemeな人が「Lisp?(プゲラ」みたいなことよく言ってるけど、 こうしてみると、別にそれほどLispが劣ってるようには見えないなあ。 大して違わないじゃん。
- 343 名前:デフォルトの名無しさん mailto:sage [05/03/05 13:31:47 ]
- 趣味でいやなことやんなくていいときはScheme
仕事で泥臭いことも泣く泣くやらなきゃいけないときはCommon Lisp フリーソフト作ってみんなに自慢したいときはEmacs Lisp
- 344 名前:デフォルトの名無しさん mailto:sage [05/03/05 14:56:15 ]
- 別に泣く泣くとか泥臭いとか言うほど違わないじゃん。
ちっとも泥臭くない。
- 345 名前:デフォルトの名無しさん mailto:sage [05/03/05 16:46:25 ]
- >>343
仕事で泣く泣くCommonLispなんて選択する奴いるのかね。
- 346 名前:デフォルトの名無しさん mailto:sage [05/03/05 17:31:16 ]
- こんなこと言うと怒られるかも知れんが、
lispとschemeで相違点あるのか? ほとんど同じようなもんじゃないのか?
- 347 名前:デフォルトの名無しさん mailto:sage [05/03/05 19:10:12 ]
- それ以上はスレ違い
このスレ、なんのために立てたんだ?
- 348 名前:デフォルトの名無しさん mailto:sage [05/03/05 19:11:19 ]
- >schemeな人が「Lisp?(プゲラ」みたいなことよく言ってるけど、
どこで言ってたのか教えてくれよ(プゲラ
- 349 名前:デフォルトの名無しさん mailto:sage [05/03/05 20:39:24 ]
- 正直言って Scheme の define-syntax はいまいち馴染めん。
call/cc も catch/throw で代用できるケースしかあまり使わない。 (そうでないケースで使うと極端に効率の悪い処理系もある) srfi の実装も結構まちまちで、ポータビリティを考えると結構めんどくさい。 ってなわけで、最近は Scheme より Common Lisp を使うことが多いね。
- 350 名前:デフォルトの名無しさん mailto:sage [05/03/05 23:32:23 ]
- Lisp と Scheme を比較って、意味がわからんぞ。
Lisp +- Common Lisp +- Scheme +- Emacs Lisp +- その他の Lisp 方言 :
- 351 名前:デフォルトの名無しさん mailto:sage [05/03/05 23:48:15 ]
- LOOPマクロが嫌いな奴はみなSchemeに流れたよ
- 352 名前:デフォルトの名無しさん mailto:sage [05/03/06 00:01:58 ]
- >>350
このスレの流れは >>335 から派生しているのだよ。
- 353 名前:デフォルトの名無しさん mailto:sage [05/03/06 00:40:06 ]
- >>351
あぁ、あれか。あれは Common Lisp 派の漏れでも醜いなと思う。 CLtL2 を読んだとき目を疑ったよ。Common Lisp の汚点だ。w 漏れ的にはループは do がデフォかな。loop は無条件繰り返しのときだけ使う。
- 354 名前:デフォルトの名無しさん mailto:sage [05/03/06 00:44:47 ]
- >>349
CommonLispにだってperlやrubyみたいな単一の実装があるわけじゃないんでしょ? だったらポータビリティの問題はschemeとかわらないんじゃない?
- 355 名前:デフォルトの名無しさん mailto:sage [05/03/06 00:54:25 ]
- んなこたあない
- 356 名前:デフォルトの名無しさん mailto:sage [05/03/06 00:57:40 ]
- >>354
Common Lisp なら言語で定義されている範囲で済むことでも、Scheme の場合は ちょっとした便利関数でも R5RS では定義されてないから結局 SRFI のお世話に なってしまう。そのときの処理系間のばらつきが割と大きいように思えるということ。 別に Scheme が嫌いなわけじゃないよ。念のため。
- 357 名前:デフォルトの名無しさん mailto:sage [05/03/06 01:26:26 ]
- Schemeってモジュールやオブジェクト指向といった、現代のプログラミングでは
欠かせない重要なことすら処理系依存じゃん。 そういうのは嫌なとこだよね。
- 358 名前:デフォルトの名無しさん mailto:sage [05/03/06 06:10:36 ]
- SRFIでライブラリの標準化を進めるのはいいが、
定義された関数仕様が気に入らない マクロ覚えたて厨が考えたみたいなマクロとか、 どこぞの処理系の実装そのまんまとか ところで、ここはCommonLispスレじゃなかったのか
- 359 名前:デフォルトの名無しさん mailto:sage [05/03/06 11:49:49 ]
- まぁ対比することで Common Lisp の良さが見えてくることもあるからいーじゃない。
- 360 名前:デフォルトの名無しさん [05/03/06 20:03:24 ]
- ところでおまいらどの処理系使ってる?
ちなみに漏れは CLISP だが。
- 361 名前:デフォルトの名無しさん mailto:sage [05/03/06 20:27:09 ]
- ACL trial
- 362 名前:デフォルトの名無しさん [05/03/06 22:20:39 ]
- やっぱりemacsかな
日本語とデバッガと独自関数の便利さから。 しかしcommon lispと結構違うのが痛い。 日本語と環境(デバッガ)とフリーという三つの条件入れるとこれしか選択肢ないんだよな。 Schemeは全滅。
- 363 名前:デフォルトの名無しさん [05/03/06 22:51:10 ]
- >>362
最近の CLISP は GNU libiconv 使ってて国際化は結構充実しているっぽいよ。 clisp.cons.org/impnotes/encoding.html
- 364 名前:デフォルトの名無しさん mailto:sage [05/03/07 05:40:28 ]
- clispいい。
eclipseみたいな環境があればもっといい。 エディタは飽きた。
- 365 名前:デフォルトの名無しさん mailto:sage [05/03/07 09:20:21 ]
- CommonLispではまともなのはCLISPしか選択肢ないよな。
環境が多少悪いかもしれないけどこれしかないんだから 我慢するしかない。
- 366 名前:デフォルトの名無しさん mailto:sage [05/03/08 06:21:06 ]
- そうか、CLISPはIDEがないのか。
JAVAでさくっと作ってみるかな。。。
- 367 名前:デフォルトの名無しさん mailto:sage [05/03/08 12:36:51 ]
- こんなのどーだ。使ったことないけど。
ciapek.uci.agh.edu.pl/~kwlodarc/VisualCLisp/en.htm
- 368 名前:デフォルトの名無しさん mailto:sage [05/03/08 20:00:20 ]
- >>367
使ってみたけど、なんか意味あるのかこれ? デバッガと言ってもインタプリタがそのまま出てきただけだったぞ。
- 369 名前:デフォルトの名無しさん mailto:sage [05/03/08 20:10:19 ]
- SLIME じゃダメですかね
- 370 名前:デフォルトの名無しさん mailto:sage [05/03/08 20:31:32 ]
- Lispがそんなに生産性高いならIDEくらいさっさと作れるはずだな。
- 371 名前:デフォルトの名無しさん mailto:sage [05/03/08 20:41:17 ]
- slimeってclispで動いたっけ??
- 372 名前:デフォルトの名無しさん mailto:sage [05/03/08 20:53:58 ]
- >370
ACLはACLで出来ている
- 373 名前:デフォルトの名無しさん mailto:sage [05/03/08 21:16:10 ]
- >>371
% ls swank*.lisp swank-abcl.lisp swank-lispworks.lisp swank-allegro.lisp swank-loader.lisp swank-backend.lisp swank-openmcl.lisp swank-clisp.lisp swank-sbcl.lisp swank-cmucl.lisp swank-source-path-parser.lisp swank-gray.lisp swank.lisp
- 374 名前:デフォルトの名無しさん mailto:sage [05/03/08 21:56:04 ]
- clisp 使えても iso-8859-1 決めうちじゃなあ。
- 375 名前:デフォルトの名無しさん mailto:sage [05/03/09 02:21:04 ]
- emacs系が統合環境なんじゃないの?
- 376 名前:デフォルトの名無しさん mailto:sage [05/03/09 16:07:21 ]
- >>371
サポートするってかいてあるけど。ttp://common-lisp.net/project/slime/
- 377 名前:デフォルトの名無しさん mailto:sage [05/03/09 22:41:11 ]
- >>367のエディタで改行して自動でインデントが付かないのは
俺だけか・・・? 微妙に使いづらいな。
- 378 名前:デフォルトの名無しさん mailto:sage [05/03/09 22:46:23 ]
- 忘れたころにLOOPマクロマンセー、と書いてみる。漏れは結構好きで使いまくりだ。
- 379 名前:353 mailto:sage [05/03/09 22:59:16 ]
- >>378
そうか。醜いとか汚点とか書いて悪かった。許してくれ。
- 380 名前:デフォルトの名無しさん mailto:sage [05/03/09 23:25:15 ]
- loopも典型的で簡単な使い方をする分にはいいんじゃないの。
- 381 名前:378 mailto:sage [05/03/09 23:52:10 ]
- そうくるとは思わなかったな。何でLOOPなんか使うんだゴルァと叩かれると思ってた。
Common Lisp使ってる時点で異端扱いなので変な目で見られるのは慣れてるのだ(w でもあのレベルのマクロを皆が好き勝手に作り始めたらポータビリティどころの騒ぎじゃ なくなるような気はする。
- 382 名前:デフォルトの名無しさん [05/03/10 06:13:09 ]
- emacsのlisp-modeのインデントが
(if predict □□a □b) こうなるんだけど、scheme-modeみたく (if predict □□a □□b) のように出来ないんディスカー?
- 383 名前:デフォルトの名無しさん mailto:sage [05/03/10 07:05:10 ]
- できる。というかわざわざ前者のようになってるわけだが……。
(put 'if 'lisp-indent-function nil)
- 384 名前:デフォルトの名無しさん mailto:sage [05/03/10 07:09:41 ]
- >>383
ありがとう。 前者のようになっている理由は?
- 385 名前:デフォルトの名無しさん mailto:sage [05/03/10 08:25:07 ]
- >>381
何でLOOPなんか使うんだゴルァ LOOPみたいな独り善がりマクロがある限り CommonLispに発展はない
- 386 名前:353 mailto:sage [05/03/10 11:20:48 ]
- >>381
マイナな中でさらに細かい流派を作って、いがみあってもしょうがないからね。 なるべく寛容になるようにしている。w 複雑なLOOPマクロを書けと言われたらちょと困るけど、読むくらいならなんとかなるし。 (たぶん、、、)
- 387 名前:デフォルトの名無しさん mailto:sage [05/03/10 16:19:01 ]
- >>384
lisp: (if COND THEN ELSE ...) scheme: (if COND THEN ELSE)
- 388 名前:デフォルトの名無しさん mailto:sage [05/03/10 21:50:33 ]
- え、それって理由になってるの?
- 389 名前:デフォルトの名無しさん mailto:sage [05/03/10 23:04:31 ]
- おそらく、理由なんだろうな。
elseが複数あるからってことでしょ? まあ、だからってなんでaだけ下げるんだという疑問はまだ残るが。
- 390 名前:378 mailto:sage [05/03/10 23:13:10 ]
- >> 385
前半の前提と後半の帰結の関係がさ〜っぱりわからん。理論立てて説明してみ。 LOOPマクロが繰り返し構造に特化したDSLの様相を呈しているという点で独り善がり という感想を持つのは理解できなくもないが(しかし委員会で承認され規格化されて いるという点で独善ではありえない)、その存在とCommonLispの発展とに何の関係が?
- 391 名前:デフォルトの名無しさん mailto:sage [05/03/10 23:35:25 ]
- >>389
>elseが複数あるからってことでしょ? ええー 述語ひとつに対してTHEN節とELSE節の他に、 ELSE1…ELSEn節があるって論理的におかしくないか?
- 392 名前:デフォルトの名無しさん mailto:sage [05/03/10 23:48:24 ]
- Scheme での (if COND THEN (begin ELSE1 ELSE2 ...)) を伝統的 Lisp では
(if COND THEN ELSE1 ELSE2 ...) と書けるってこと。
- 393 名前:353 mailto:sage [05/03/10 23:52:58 ]
- >>387
ええーーーっと思って確かめたけど、Common Lisp は複数の else 句を取れないよね。 初めて知ったが emacs lisp は確かに複数の else 句が取れるんだな。 別に論理的におかしいとまでは思わないけど変わった仕様だね。
- 394 名前:デフォルトの名無しさん mailto:sage [05/03/10 23:54:48 ]
- 2個目以降がもったいないから利用しちゃおうという感じか?
わざわざprognとかでネスト深くする必要がないように。
- 395 名前:デフォルトの名無しさん mailto:sage [05/03/11 01:20:22 ]
- >>394
それって、括弧の存在、如いてはS式そのものを否定することにならないか? Lisperは、括弧を惜しみなくばら撒くもんだとばかり思ってたよ。
- 396 名前:デフォルトの名無しさん mailto:sage [05/03/11 01:36:07 ]
- そんなおおげさな
(+ 3 (+ 1 (+ 4 (+ 1 5)))) だって (+ 3 1 4 1 5) と書けるじゃないか だからといってどうといったことはない
- 397 名前:デフォルトの名無しさん mailto:sage [05/03/11 04:09:39 ]
- 括弧の帆を広げて
順風満帆といきたいねえ
- 398 名前:デフォルトの名無しさん mailto:sage [05/03/11 04:29:34 ]
- 実益と実害を全く無視して括弧を好むのは本末転倒。
- 399 名前:デフォルトの名無しさん mailto:sage [05/03/11 04:39:32 ]
- ((i))
- 400 名前:デフォルトの名無しさん mailto:sage [05/03/11 12:40:30 ]
- >>387
ちなみに Common Lisp は scheme と同じ (if COND THEN [ELSE]) なわけだが、 ELSE を複数書ける Lisp って Emacs Lisp 以外にあるの?
- 401 名前:デフォルトの名無しさん mailto:sage [05/03/11 12:50:25 ]
- よくわからんが、>>392によると、伝統的Lispでは大体そうなんじゃないの。
つまり、MacLispとか?なんか昔はいろいろなLispがあったらしいし。 CommonLispはSchemeの影響もかなり受けてるしな。 最近のLispがELSE一つなんじゃないかと。
- 402 名前:デフォルトの名無しさん mailto:sage [05/03/11 13:17:30 ]
- >>401
MacLisp には if は無かったみたい。 zane.brouhaha.com/~healyzh/doc/lisp.doc.txt Common Lisp 以前の「伝統的なLisp」では if よりも cond が基本だったし、ELSEが複数 書けるというのは Emacs Lisp のローカルルールではないかと思うのだが。
- 403 名前:デフォルトの名無しさん mailto:sage [05/03/11 16:11:16 ]
- MIT Lisp Machine では ELSE を複数書けたよ。
www.bitsavers.org/pdf/mit/cadr/ Symbolics でも同様だったと思う。
- 404 名前:デフォルトの名無しさん [05/03/12 02:27:01 ]
- On Lispを読んでてクロージャの説明のところで
(let ((counter 0)) (defun inc () (setq counter (+ counter 1))) (defun reset () (setq counter 0))) こういう内部状態を持つ関数の話が出てきて、Schemeに書き換えようと思ったんだけど defineはlet式の内部で使っても外から見えないから、 上のCommon Lispの例のdefunをdefineに書き換えただけじゃうまくいかない。 Common Lispの例みたいに共通の環境情報にアクセスできる複数の関数の上手い書き方ってないかな。 (define count (let ((counter 0)) (lambda (option) (if option (lambda () (set! counter (+ counter 1))) (lambda () (set! counter 0)))))) (define inc (count #t)) (define reset (count #f)) これじゃちょっと格好悪いよね…
- 405 名前:デフォルトの名無しさん mailto:sage [05/03/12 03:12:31 ]
- (define inc #f)
(define reset #f) (let ((counter 0)) (set! inc (lambda () (set! counter (+ counter 1)))) (set! reset (lambda () (set! counter 0))))
- 406 名前:デフォルトの名無しさん mailto:sage [05/03/12 05:31:54 ]
- (define-values (inc reset)
(let ((counter 0)) (values (lambda () (set! counter (+ counter 1))) (lambda () (set! counter 0)))))
- 407 名前:デフォルトの名無しさん [05/03/17 09:14:18 ]
- 本スレではLISPの普及に腐心してるようだ(主にドキュメントみたいだけど)
で、このスレ的にはLISPで何が出来ればいいのだろう? サーバサイド、DB、XMLや、環境としてWindowsで、こんなところなのだろうか?
- 408 名前:デフォルトの名無しさん mailto:sage [05/03/17 13:09:54 ]
- LISPと言えば人工知能に決まってるじゃないか
- 409 名前:デフォルトの名無しさん mailto:sage [05/03/17 14:41:00 ]
- >408
ワロタw 人工知能にすら使えるほどの高級言語なら、業務システムを記述する ことは易い。
- 410 名前:デフォルトの名無しさん mailto:sage [05/03/17 20:22:18 ]
- >>409読んで、最高に頭悪そうな発言してくださいスレ
かと思った。
- 411 名前:デフォルトの名無しさん mailto:sage [05/03/17 23:55:46 ]
- Lispで人工知能を作って、それに業務システムを作らせるのが真のLisperだ。
- 412 名前:デフォルトの名無しさん mailto:sage [05/03/17 23:59:03 ]
- >>411
それだ!
- 413 名前:デフォルトの名無しさん mailto:sage [05/03/18 01:44:25 ]
- ASDFの記述でLisp以外のコードの扱いをどう書いたらいいかとか分かるようなサンプル
誰か持ってない? ただアーカイブぶちまけてconfigure, make, make installする だけなんだけも。ASDF慣れちゃうとmakeが面倒になってきくるけど、Lispオンリーで済む 状態でなくなったときにふとどうしたものかと悩んでしまう今日この頃。
- 414 名前:デフォルトの名無しさん mailto:sage [05/03/18 05:40:36 ]
- ASDFの中でmakeするやつっていくつかあるよ。
でも中のmakefileがLinuxに依存したものになってる場合があって 辟易するんだよなー。Makefileの書式とかコマンドのパスとかさ。 署名前提だから適当に手元で改変して食わせるというのもちょっと手間がいるし。 というわけで例としてはUFFIがあるけど上記の点をよろしくおながいしますm(_ _)m
- 415 名前:413 mailto:sage [05/03/20 00:34:40 ]
- >>414
サンクス。uffi-tests.asd非常に参考になりました。 ってか自分でASDFのソース読みながらこんな使い方でいいのかな思いながら書いてた ところに上の情報もらったんで、結果的に他の人の使い方も見てダブルチェック。 自分で好きなようにカスタマイズできてASDFって実にイィ!!ですね。 署名前提ってのはasdf-installのことだよね。cCLan最近見てないけど変化あった?
- 416 名前:デフォルトの名無しさん mailto:sage [05/03/20 00:49:04 ]
- Gauche 0.8 + FreeBSD4.9だが日本語を受け付けてくれないyo!!
gosh> "日本語" *** ERROR: unhandled signal 2 (SIGINT) Stack Trace: _______________________________________
- 417 名前:デフォルトの名無しさん mailto:sage [05/03/20 00:53:03 ]
- ところでここSchemeの話題っていいの?
- 418 名前:デフォルトの名無しさん mailto:sage [05/03/20 00:54:04 ]
- >>416
受け付けてくれるyo!! % gosh -V Gauche scheme interpreter, version 0.8.3 [euc-jp] % gosh gosh> (string-length "はげ") 2
- 419 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:52:38 ]
- >>407
common lisp emacs # 需要は、それなりにあるんじゃないかな。 # hemlockは、あまり、うまくいってないようだし。
- 420 名前:デフォルトの名無しさん [2005/03/25(金) 01:36:49 ]
- xyzzyでXMLを扱えるコンポーネントって何かあります?
- 421 名前:デフォルトの名無しさん [2005/03/25(金) 09:22:09 ]
- > lispを使用してC#やJAVAの代替にするための方法(おまけ)
どうやんだよ?
- 422 名前:デフォルトの名無しさん [2005/03/25(金) 09:24:05 ]
- gosh> (string-length ">>418 氏ね")
8
- 423 名前:デフォルトの名無しさん [2005/04/09(土) 13:53:42 ]
- clispで定義された
(defun func()(print "func"))->func という適当な関数を定義してバイトコンパイルしたものを VC++から呼び出すとか出来ます?パイプでもなんでもいいんですが、 出来ますか?
- 424 名前:デフォルトの名無しさん mailto:sage [2005/04/09(土) 18:12:46 ]
- できますよ。
- 425 名前:デフォルトの名無しさん mailto:sage [2005/04/09(土) 18:28:35 ]
- clispって住み心地いいですよね。
- 426 名前:デフォルトの名無しさん mailto:sage [2005/04/09(土) 18:29:23 ]
- 住むところを間違えてます
- 427 名前:デフォルトの名無しさん [2005/04/09(土) 20:48:02 ]
- >>424
やり方を教えておくれ、詳しく、たのむ
- 428 名前:デフォルトの名無しさん mailto:sage [2005/04/09(土) 21:26:49 ]
- clispのマニュアルに詳しくかいてあるよ
- 429 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 00:43:55 ]
- LispからCの関数を呼ぶ例しか書いてない・・・
- 430 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 02:35:07 ]
- おんなじことだろ
- 431 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 12:30:06 ]
- 同じか?
いまいちわからんな〜
|

|