[ruby-list:90] Re: ruby vs. perl

From: matz@... (Yukihiro Matsumoto)
Date: 1996-01-25 06:33:11 UTC
List: ruby-list #90
まつもと ゆきひろ@トヨタケーラムです.

In message "[ruby-list:89] Re: ruby vs. perl"
    on 96/01/25, P nakawtse <nakawtse@syrinx.dq.isl.ntt.jp> writes:
| 中渡@NTTです.

|  なるほど,私の場合はスクリプト言語にもともと期待がないだけに
| たいしたことをさせてないようでです.

私は期待しすぎでしょうか.

|> 連想配列なわけですから,結局,繰り返し比較するというアルゴリ
|> ズム以外にはありえないわけで,本質的な高速化は難しいですねえ.
|> 後はどれだけCのコードに任せちゃえるかで決まるような….
|
| 連想配列の仕組みはよく知らないのですが,/xyz./をやるには
| すべてのキーと比較しなければならないのですか?.事前に
| 探索範囲を縛れないのでしょうか?

うーん,普通連想配列はハッシュを使って実装すると思うので,難
しいんではないでしょうか.

つまり,ハッシュ表はキーからハッシュ値を生成して,ハッシュ値
を使っての取り出しが素早くできるように実装されます.ところが,
正規表現による比較はハッシュ値ではなく,キーそのものに対して
しか行えませんし,正規表現にマッチしうるハッシュ値を求めるこ
とは不可能です.

というわけで,*普通の*連想配列では,キーなりバリューなりを正
規表現で比較しようと思えばなんらかの形で全要素に対してループ
を回すしかないです.もちろん,正規表現で高速に検索する機能を
もった正規表現を作ることは可能でしょうが,一般的ではありえな
いでしょうね.

# で,そういう機能を持つ連想配列を追加する拡張を行うことは
# rubyでは可能ですが,perlでは(連想配列は言語の一部なので)不
# 可能です.

| それにperlのeachは途中でリセットできないんです.

eachがリセットできないのはループを組む上でかなりつらいですね.
この辺はrubyの方が良いですね.

|#J言語って便利なんですかね?

APLの後継だそうです.ベクトルの計算には向いてるかも知れませ
ん(かなり慣れは必要そうですね).        

|p.s.  ruby-mode.el の説明書はついてました?

ごめんなさい.ついていません.あれはインデント以外なにも特別
なことをしていませんので,使う上で不自由は無いと思ってました.

使えるコマンドは

 TAB
        その行のインデント
 C-m
        改行してインデント
 M-a
        クラスまたはメソッド定義の先頭へ
 M-e
        クラスまたはメソッド定義の末尾へ

 M-x ruby-encomment-region
        リージョンをコメントアウト

 M-x ruby-decomment-region
        リージョンのコメントを外す

くらいです.

In This Thread

Prev Next