From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-09-18T16:56:40+09:00 Subject: [ruby-list:4408] Re: mail address class けいじゅ@日本ラショナルソフトウェアです. In [ruby-list :04406 ] the message: "[ruby-list:4406] Re: mail address class ", on Sep/18 15:06(JST) akira yamada writes: >コメントありがとうございます. いえいえ. >石> デフォルト引数を用いているメソッド定義がほとんどですが, 利用することは >石> 滅多にないと思うので用いない方が良いんじゃないかと思います. > >ちょっと分からないのですが, デフォルト引数がないことの >積極的なメリットってのはどういう点になるのでしょう? ああ. そこまでの意味でいったわけでもないです. わざわざデフォルト引数を 用いるほどでもないんじゃないか? ってぐらいです. >石> 3. class Addressesについて >石> >石> こういう複数系のクラスは滅多にないですし, クラス自身の目的も良く分かり >石> ません. パーザと整形(folding)を兼ねている見たいですが, クラスにする必 >石> 要はないでしょう. > >この辺り, 紆余曲折の名残と言うことで(^_^;) >ちょっと考えてみたのは RFC822 とかって class を作って >folding はそっちに実装する(アドレスを扱う class に含めるのは >おっしゃる通り元々無理がありますね). >でもって, >>> # o まじめに MIME エンコードできる (やってない) >>> # o MIME デコードできる (やってない) >石> MIMEに関しては, ここで作るのでなくて別モジュールにした方が良いと思いま >石> すよ. そうすれば, Addressに限らずいろいろなところで利用できますから. > >という話は class MIME < RFC822 とかって形にしていく, とかかな. module MIME include RFC822 class Address include MIME というイメージです. ただ, 最終的にどんな機能を実装したいかによって変わってくるとは思います が... >あ, この辺はそもそも残しておいたのがまずかったのですが, >安直なデバッグ用だったので(^_^;). >が, それはそれとして > >石> 実際には1文字列しか渡している例はありませんが, このようなルーチンは他 >石> のプログラムにも使えますので, デバッグ用の汎用のモジュールとして用意し >石> ていけば良いんじゃないかしら? > >と言うようにできると良いですね. 皆さん適当に作っているみたいですよ. 有名なのが p str などですが, いま は, rubyに最初から実装されているみたいですね. みんなが良く使うから実装 しちゃったのかしら? >石> # このメソッドに限らずの話しなんですが, 字句解析系はもっとも rubyらし >石> # くなくなりますね... > >元々字句解析なんてやったことがないので >これ以上のことは思い付かないのですが, >例えばどのようにすれば良いのでしょうか? いや. やまださんのに限らずあまり奇麗に書けないんですよ. 結局は一文字づ つ処理しなくてはいけないので, 奇麗にできないんですよねぇ. 最近, 字句解 析を行うプログラム書くことが多かったので, 私ももっと奇麗にできないもの かと考えている次第です. ただ, やまださんのは状態遷移見ながら処理を進めていますが, これだと状態 の数が多くなると制御し切れなくなると思います. ので, その状態になると識 別したらそのcaseの中で処理していく方法の方が良いかも知れません. while token = tokens.shift case トークン when "<" 一気に<...>の処理を行う when '"' 一気に"..."の処理を行う ... end end という感じですね. __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---