[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 02/01 06:02 / Filesize : 245 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Lisp Scheme Part33



1 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 17:58:58.06 ]
Common Lisp、SchemeをはじめとするLisp族全般のスレです

■前スレ
Lisp Scheme Part32
hibari.2ch.net/test/read.cgi/tech/1303299696/

■テンプレ
wiki.fdiary.net/lisp/

■関連スレ
【入門】Common Lisp その8【質問よろず】
hibari.2ch.net/test/read.cgi/tech/1309940115/

598 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 19:15:47.95 ]
よっぽど複雑なPython処理系って具体的に何よ。

599 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:00:19.76 ]
>>598
その解釈はこちらの意図と違う。「よっぽど複雑な」が掛かるのはPython。

Pythonで実装してるPythonが知りたいなら、例えば名前がエロいPyPyがそう。
PyPyとかPychinkoとかPython使いエロ過ぎ。

Lisperももっとエロくなる必要があると思う。pgのeroとかじゃエロさが足りねーよ。

600 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:21:19.81 ]
今、man perlして気づいたんだけど、man perl*の充実ぶりってすごいなあ。
日本ローカルだけでman lisp*って充実しないか。manで引けるって便利だよなあ。
ドキュメントの置き方的に問題があるのかもしれないけど。
Overview
perl Perl overview (this section)
perlintro Perl introduction for beginners
perltoc Perl documentation table of contents
Tutorials
perlreftut Perl references short introduction
perldsc Perl data structures intro
perllol Perl data structures: arrays of arrays
perlrequick Perl regular expressions quick start
perlretut Perl regular expressions tutorial
perlboot Perl OO tutorial for beginners
perltoot Perl OO tutorial, part 1
perltooc Perl OO tutorial, part 2
perlbot Perl OO tricks and examples

601 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:21:44.31 ]
600ぺりか

602 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:23:45.48 ]
おらの600ぺりかがあ・・・・

603 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:04:57.56 ]
>>599
ooopyもあるんだぜ。そりゃホルスタインは男の夢だが

604 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:05:57.51 ]
質問です。
'((A B C D) (E F G H) ...) -> '(A B C D E F G H ...)
の加工を行いたいのですが、関数をどのように組めばいいですか?

605 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:06:24.57 ]
>>604
appendか?

606 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:14:51.32 ]
>>604
Common LispかSchemeかは知らないが、appendをapplyすればおk。
ただし、関数の引数の最大数の制限に掛かるから、巨大なリストには他の方法を使うこと。

www.aiai.ed.ac.uk/~jeff/lisp/cl-pitfalls から引用すると、

(reduce #'append list-of-lists :from-end t)
(mapcan #'copy-list list-of-lists)

とか。Schemeならfold系の手続きを使えばreduceと同じことができる。



607 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:16:22.30 ]
っと。肝心なapplyの例載せ忘れたよ。

(apply #'append '((0 1 2) (3 4 5)))
;=> (0 1 2 3 4 5)

608 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:23:30.49 ]
とりあえず、LispでエロいっていうとS式を受ける引数によく使われるsexpは外せない。

609 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:30:15.72 ]
>>608
cofee-p のあれからいくと...


610 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:36:00.24 ]
mapappendていう関数があったような
なかったような


611 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:39:39.27 ]
あー、中でapplyしてんのか
失格だ
(define (mapappend func . args)
(if (memv '() args)
'()
(append (apply func (map car args))
(apply mapappend func (map cdr args)))))


612 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:54:23.19 ]
sexp と書くのはためらわれるので、自分で書くときは sxp と書いている。

613 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:58:17.69 ]
>>609 nil って答えられると困るじゃないか


614 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:25:28.38 ]
>>609
同性どうしならヤダな。

615 名前:デフォルトの名無しさん [2011/12/26(月) 00:45:26.84 ]
PyPi
PyPy
Pychinko
Pypants

616 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:57:03.26 ]
おいおい。パンツまであるとかレベルたけーな。



617 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 02:38:10.37 ]
pypanもあるぞ

618 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 03:04:44.40 ]
行列計算ぐらい統一してほしい
(list 'matrix 数値)
とか
(vector (vector 数値))
とか
(vector 数値)
とか

というか計算が一番速いのはどれ?

619 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 04:27:35.55 ]
racketに
(define (apply-values proc args-expr)
(call-with-values (lambda () args-expr) proc))
なんてのあるけど、どうせならsrfiかなんかに登録されてほしい。

620 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 10:49:07.18 ]
>>618
Common LispやSchemeで行列演算とかしたことないけど、
本気で性能を気にするなら、disassembleして生成されるインストラクションを見た方が良い。

リストはインデックスアクセスの計算量的に不利だから、あんま使われんだろうとは思う。
ベクタのベクタと単一のベクタは生成時のコスト以外あんま変わらん気がするけど、
処理系によってベクタの実装に差があると思うから、その処理系で実際試してみないと何とも。
処理系のコード読んでみるのも良いかもしれない。ベクタへのアクセサとかの。

621 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 16:35:21.51 ]
CommonLispなら組み込みでarrayがあるのにわざわざリストやベクタのベクタ使う意味は?
arrayで型宣言して(speed 3)(safety 0)すればそれなりのコードは出るよ。
Schemeはsrfi-25があるけど、速度はわからん。


622 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 16:40:12.33 ]
標準で行列演算ならarrayを使うほうが適切だわな。

623 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 16:57:14.78 ]
キーワードじゃなくて素のシンボル使ってるから多分Schemeっしょ。
Racketはサポートしてるけど、リファレンス実装ぽいなー。
Gaucheはgauche.arrayでSRFI-25とAPIは揃えつつ独自の実装してるっぽいね。

624 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:06:03.87 ]
ところでgauche使いってここに何人いるの?

625 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:07:07.75 ]
gauche以外に何があるんだよ…

626 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:28:08.07 ]
凄い脳味噌



627 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 19:35:05.74 ]
>>605-
ありがとうございます。
助かりました。

628 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 21:12:24.95 ]
common lisp(CCL)とgaucheでcdかdが見つかったら続く非空白文字につなげたいのですが
(直後に改行が来ていたら次の行の非空白文字につなぎます)
どういう処理ですればいいのでしょうか。dは一つだけ来て二つ以上は続きません。

a1a2cd b1b2b3
c1c2c3 d1d23d
e1e2e3 f1f2f3

a1a2 cdb1b2b3 ; cd b -> cdb
c1c2c3 d1d23 ; 行末のd -> 次の行へ
de1e2e3 f1f2f3 ; ->行頭にdを追加

ファイルから一文字ずつ読み込んでcdとdが来たら非空白文字まで出力を控え、
非空白が来たときにそれとともに出力という原始的な方法を考えたのですが
もっと効率のよい手法はあるでしょうか

629 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 21:25:38.35 ]
www.suri.cs.okayama-u.ac.jp/servlets2/scm2cpp.rkt
Schme to readable C++
に型推論を導入
まだ未完成だけど時間切れになってしまったのでやもえず公開

630 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:06:07.79 ]
>>628
> もっと効率のよい手法はあるでしょうか

具体的に何の効率なの?
実効速度の事なら、よっぽどまずいコーディングしない限り、
速くなったり遅くなったりする要素は殆どないけれども。

631 名前:628 mailto:sage [2011/12/26(月) 23:22:59.43 ]
>>630
そうなのですか
わかりました

632 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2011/12/26(月) 23:28:53.00 ]
Gauche ならその手のスクリプトでありがちなテキスト処理用の機能が多数用意されてるからよほど速度とかメモリとかにこだわるのでなければ正規表現でマッチさせて置換えでいいんじゃないかな。

(display
(regexp-replace-all
#/(c?d)([ \n])/
"a1a2cd b1b2b3
c1c2c3 d1d23d
e1e2e3 f1f2f3"
(^[m]#`",(m 2),(m 1)")))

633 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:40:59.31 ]
cl-lexでもいけそうだけど、本人案でいいでしょ。

634 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:56:04.87 ]
またお願いします。
define-syntaxを使って
(map proc list) -> (proc (x list))
のように変換したいです。
簡単に言えば、リストにmapを内在させて見てくれを良くしようと思ったのです。
e.g.)
(define plusone (lambda (x) (+ 1 x)))
;;;通常なら
(map plusone '(1 2 3)) ;;;=>'(2 3 4)
;;;やりたい
(plusone (まくろ '(1 2 3))) ;;;=>'(1 2 3)

635 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:05:34.41 ]
最後の'(1 2 3)は誤記です

636 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:08:32.94 ]
call/ccでも使えば



637 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:28:53.24 ]
>>636
使いましたがリスト先頭のみ処理されました。

638 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:33:43.11 ]
>>632-633
ありがとうございます。

639 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:53:13.56 ]
≡≡≡≡ 癶( 癶;:゚;益;゚;)癶 カサカサカサ

640 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 01:55:16.48 ]
AmazonのプログラミングGauche売れとるな

641 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 17:28:00.78 ]
プログラミングgaucheの中に出てくるjames clark's notationについて
どこかに詳しい説明はありませんか
search.cpan.org/~rbs/XML-Filter-Essex-0.01/lib/XML/Essex/Model.pm
を見るとどうもjames clark's notationは別物のように思えるのですが

642 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 17:45:55.73 ]
その本は読んでないが、
www.jclark.com/xml/xmlns.htm
では足りないのかい?

643 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 17:49:55.17 ]
俺の記憶にあるのは、
ttp://jp.rubyist.net/magazine/?0012-qwikWeb#l14
これだけだな。

確か高林氏が最初に「わびさび方式」を紹介した時に、氏のコードが生成してるスタイルについて
そのように呼んでた記憶があるんだが、氏の勘違いじゃなかろうかと俺は思っている。

字下げ付けないでべたっと生成してるぶんにはさほどでもないが、字下げを付けようとしたら
割と変態っぽくなった記憶がある(まぁPPなんて複雑になりたがるもんだけど)。

644 名前:641 mailto:sage [2011/12/27(火) 22:48:00.53 ]
なるほどわかりました

645 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 00:16:15.10 ]
「プログラミング不器用な」 が売れてるのか。

646 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 14:29:47.83 ]
www.cl.cam.ac.uk/teaching/1011/ConceptsPL/
これのlispのスライドにreflectionとあるのですが
>Fully reflective languages are still just research prototypes
>(e.g. Maude), but limited forms of reflection appear in
>several languages (e.g. LISP, Prolog, Python)
これはどういうことなのでしょうか?



647 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:06:33.10 ]
なんぞ

[腐lisp]腐女子のためのlisp入門 #0 - Oh! Can Not Diary
piro.hatenablog.com/entry/2011/12/28/232146

648 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:20:58.48 ]
あのpiro氏とは無関係か。
腐はともかくとして、今時elispってのはこれまた微妙な。

649 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 14:50:37.28 ]
学生プログラマ日本一決定戦(予選は社会人も参加可)
ttp://codevs.jp/howto.html
現在予選開催中
応募締切 2012.1.6 12:00

おもしろいことやっているじゃん。誰か今から参加しろよ。

650 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:06:15.26 ]
>>649
社会人でも予選は参加可能らしいしやってみれば?

時間制限あるしsbclとか使えば多少有利かもね

651 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:33:07.12 ]
つまらんわ

652 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:37:36.79 ]
ほうしゃのうを除去するプログラム作ってくれ

「ほうしゃのうを除去するプログラム作ってくれ」

「を除去するプログラム作ってくれ」

653 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:42:28.01 ]
R7RSのドラフト読んでみたけど、R6RSは本気で黒歴史にする方向みたいだな。

654 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 12:07:30.67 ]
>>653
>R6RSは本気で黒歴史にする方向
詳しく聞きたい

655 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:35:22.18 ]
互換性切って捨てられるとかpython3みたいだな。

656 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:59:16.85 ]
rubyよりまし



657 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 18:50:38.47 ]
Perl6は赦された

658 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 23:54:15.03 ]
R6RSとかいらないし

659 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:08:33.13 ]
Windows2000と7に挟まれたVista扱いですか…

660 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:16:29.67 ]
7も正直微妙なんだけど8で大コケの予感
UIいじるのは完全に死亡フラグ

661 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:18:26.33 ]
単なるマーケティングの問題と一緒にすんな

662 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:43:46.81 ]
racketに慣れきってしまったので6を黒歴史にされると困る

663 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:55:14.14 ]
RacketはもうArcよろしく我が道を往くことになってるから安心しろ。
あれはLispではあるけど、もうSchemeじゃない。RnRSをサポートしてても。

664 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 12:10:07.16 ]
iphoneでもluaはちゃんと動く
lua上で動くschemeがあるので
iphoneでも無料でscheme動かすことできる

665 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 12:44:02.99 ]
de?

666 名前:デフォルトの名無しさん [2011/12/31(土) 13:06:19.87 ]
>>663
だとすると、結局のところschemeのエッセンスって何なの?



667 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 13:21:55.67 ]
>>666
実装して楽しいことじゃね?

668 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 13:48:45.98 ]
誰かアンドロイドタブレットで動くgaucheインタープリタ作って

669 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 16:49:22.06 ]
>>666
純粋な計算機科学の話ではなくて、どちらかと言えば政治的な話。

"a dialect of Lisp and a descendant of Scheme"のRacketの処理系であって、
今後もRnRS Schemeをサポートするけど、それは彼らにとって一番の目的じゃない。

670 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 22:39:05.56 ]
gaucheで
テキストファイルの内容をテキストとしてそのまま出力するcgiと
ダウンロードページのように、アクセスすると指定したtar.gzをダウンロードさせるcgiを作りたいのですが
どういう風にすればいいのでしょうか

671 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 22:51:56.15 ]
お前 Gauche 以前の問題だろ

672 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 23:28:54.18 ]
gaucheで
の部分を何に変えても同じことだな

673 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 23:55:16.29 ]
テキストファイルやtar.gzを読んで適切なhttpヘッダーつけて標準出力に
書き出せばいい。


674 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 00:06:12.05 ]
>>671-673
ありがとうございました


675 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 14:58:10.32 ]
iphoneのgambit cが便利。しかしソースの保存先が不明。どこから見れるんだろ

676 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 15:47:38.47 ]
>>675
アプリつくれるんだっけ?



677 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 16:03:17.95 ]
>>670
高校生の時を思い出したわ。
今の時代はこんなの中学生か小学生かな。

678 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 17:05:47.37 ]
>>676
>>675
>アプリつくれるんだっけ?
単にどこでもスキームコードが書けるだけみたい。

679 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 22:00:21.15 ]
>>677

680 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:11:07.42 ]
Gambitの継続をスレッドで実装する方法ってどこかに文献ないのでしょうか


681 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:23:00.76 ]
lists.racket-lang.org/users/archive/2008-June/025051.html
結局、どっちの挙動が正しい挙動なの?

682 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:27:02.33 ]
トップレベルの解釈って処理系がそれぞれ適当に決めてるんじゃないの

683 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:50:27.30 ]
処理系作ってみればわかるが
どっちもどっち

684 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 17:17:36.26 ]
axisofeval.blogspot.com/2011/07/some-nice-paperz.html
Some nice paperz on delimited continuations and first-class macros

685 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 19:45:58.29 ]
schelogでちょっと複雑なプログラム組むと
無限ループから帰ってこなくなるのは
自分の使い方が悪いだけなんだろうか

686 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 21:34:21.86 ]
>>685
github



687 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:30:34.59 ]
srfi-*とかクソわかりづらいんだけど慣れるもん?

688 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:44:01.52 ]
いや、メモを参照すべきだと思うぞ。

689 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:48:31.33 ]
RFCなんかに比べりゃかわいいもんよ

690 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 01:21:07.60 ]
>>688
なんのメモを参照しているの?

691 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 06:07:02.56 ]
srfi とslibの関係がよくわからない

692 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 07:40:07.85 ]
srfiは仕様案を出してみんなで議論して形にする。一応参考実装があるけど、
「仕様」が本体なので、仕様だけ見て独自実装している処理系も多い。
slibはSCMの作者が中心となってメンテしているライブラリの集合。仕様に
こだわるよりも実装が主体。
両者は基本的に無関係だけど、SCMの作者がslibの一部の仕様をsrfiとして
提出して承認されているものはある。

693 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 06:38:20.67 ]
racketはシェルとの融合性が悪すぎる
パイプとportつなげたいだけなのに出来ないとか

694 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:24:29.54 ]
(call-with-output-string
(lambda (out)
(call-with-input-string "aaaaaa"
(lambda (in)
(exec-shell-pipe "cat -" in out)
))))
みたいなことしたいのだけどRacketはできないみたい
Gaucheならできる?



695 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:29:27.07 ]
みたいなことはどれでも出来るんじゃね

696 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:47:53.08 ]
shellの標準入力とパイプ入力で扱いが違うらしく
動かないshell コマンドがある



697 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 16:32:57.47 ]
common lispとscheme(gauche)のソースを見やすくする
javascriptでできたシンタックス・ハイライトはありますか?
webでそれらのソースを見せたいので

698 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 17:52:28.72 ]
>>697
see demo at pygments.org/






[ 続きを読む ] / [ 携帯版 ]

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

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