[#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:904] [REQ]Get Strings!<1> GETS(RS)

From: Shin-ichiro Hara <sinara@...>
Date: 1996-10-27 10:26:40 UTC
List: ruby-list #904
原です。

まず、落ち葉ひろいから。

(1)split 関数がほしい。(chop 関数みたいに忘れられた?)

(2)$/ は awk の RS と同様な働きをするとされていますが、
$/ = "" としても、慣習的な複行レコードのモードになりません。
これは仕様でしょうか?$/ = "\n\n" としろということですか?

(3)gsub(/.*/, "a") のように、gsub でパターンが '' にマッチ
すると ruby が止まってしまう。


では本題。

私は ruby は既に Perl に勝っていると思いますが、テキストデー
タの処理に関しても、ほぼ Perl と同様で十分過ぎるという気もし
ます。しかし、さらにこんなのが関数があったら、もう完全に Perl
なんかメじゃない、と言えるようなものが出来ないかとアイデアを
出してみました。。

余計な機能を増やしてサイズを増やすのも何だし、ruby の仕様は
既にとてもよく練られているし、キワモノ的仕様はまつもとさん
は多分お嫌いだと思うので、なかなかヘタなリクエストもできない
のですが、まあ、言うだけ言ってみますから、聞くだけ聞いてくだ
さい。(^^;


(3)string[負の値] を許してほしい。

string[-5, 3] 後ろから 5 文字目 から 3 文字
string[-5..-3] 後ろから 5 文字目 から後ろから 3 文字文字目まで
string[3..-1] 3 文字目以降すべて

などを許す。(これは perl にあるか。Range クラスとの関係でまず
いですか?)


(4)gets(RS), each_line(RS), readline(RS), readlines(RS) がほ
しい。

例えばメールを読み込むのに

header = gets("\n\n")
body = gets(nil)

とできて気持ちいいです。

g_var.push($/)
$/ = "\n\n"
header = gets
$/ = nil
body = gets
$/ = g_var.pop

とするのと雲泥の差です。特に Thread で動かしたりすることを考え
ると。

(つづく)
----------------------------------------------------------
                                                  原信一郎

In This Thread

Prev Next