[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
リージョンのコメントを外す
くらいです.