[#954] Rational — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

23 messages 1996/10/30
[#955] Re: Rational — matz@... (Yukihiro Matsumoto) 1996/10/30

まつもと ゆきひろです.

[#968] Re: Rational 1996/10/31

けいじゅ@SHLジャパンです.

[ruby-list:911] Re: [REQ]Get Strings!<2> GETR

From: matz@... (Yukihiro Matsumoto)
Date: 1996-10-28 03:14:11 UTC
List: ruby-list #911
まつもと ゆきひろです.

In message "[ruby-list:905] [REQ]Get Strings!<2> GETR"
    on 96/10/27, Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp> writes:
|
|原です。つづきです。
|
|(5)ungetc, ungets がほしい。

ungetcはあります.ドキュメントには落ちていますね.

ungetsは提供するのは難しいですね.というのもungetcの挙動がシ
ステム毎に違うので動作が保証できないからです.stdioを使わず
に実装すればできると思いますが(石塚さんには勧められているの
ですが),かえって移植性が落ちるような気がしますし,多分将来
もしないでしょう.

|(6)getr(RS) がほしい。

|何のことかというと、この RS というのは、レコード・セパレータでは
|なくて、まあ、レコード・スタータというべきか、つまり、レコードを
|その始まりの文字で区別したいのです。例えば、日経 MIX の各アーティ
|クルは、"==========\n" で始まります。これは見た目からいって自然な
|データの構造です。ところが "matz" という文字が出てくるアーティク
|ルだけ抜き出すにはこの様に書かなければならないわけです。

 $/ = nil
 readline.split("==========\n").each do
   print if /matz/
 end

じゃダメ? メモリ効率は悪そうだけど.

|このコードをみたら、Larry Wall は畳をかきむしって悔しがるにちがい
|ありません。:-)

lwallのうちに畳があるかどうかは知りませんが.

|あるいは、gets(RS,0), gets(RS,1), gets(RS,2) としてそれぞれ、RS
|を、セパレータ、ターミネータ、スタータとしてもいいかもしれない。

セパレータ,ターミネータ,スタータのそれぞれに対応するような
機能はrubyの組み込み機能として提供するにはちょっと抵抗があり
ます.なんとなくですけど.ライブラリとして外部で提供すべきで
はないでしょうか.

|さらに RS に正規表現を使えれば言うことなしですが、もともと $/ に
|も許してないですしね。

splitなら対応していますよ.
                                まつもと ゆきひろ /:|)

In This Thread

Prev Next