[#39464] Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

25 messages 2004/04/01
[#39608] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/02

遅い反応&File.fnmatchは使った事ない&ruby-devの方では

[#39609] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/02

File.fnmatch(と Dir.glob)をちょっと使ってみたのですが、

[#39610] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/02

山本です。

[#39611] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — matz@... (Yukihiro Matsumoto) 2004/05/02

まつもと ゆきひろです

[#39613] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/02

From: matz@ruby-lang.org (Yukihiro Matsumoto)

[#39616] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — matz@... (Yukihiro Matsumoto) 2004/05/02

まつもと ゆきひろです

[#39620] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/03

From: matz@ruby-lang.org (Yukihiro Matsumoto)

[#39621] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — matz@... (Yukihiro Matsumoto) 2004/05/03

まつもと ゆきひろです

[#39622] Re: Re [ruby-dev:23297] 大文字・小文字の区別がDOSISHかどうかで変わる、パス名マッチ関数の提案 — pegacorn@... 2004/05/03

From: matz@ruby-lang.org (Yukihiro Matsumoto)

[ruby-list:39530] Re: int/int in Ruby2?

From: Nobuhiro Fujitaka <fujitaka@...>
Date: 2004-04-10 06:40:51 UTC
List: ruby-list #39530
藤高です。
Rubyをデータベース処理や、CGIプログラムに良く利用しています。
数学計算はやりません。

>   1) モードで記号の取り扱いを変えるのは、ヤッパリ可読性の低下と、バグの
>      温床なので避けたい。

記号は基本的な部分なので抵抗はありますよね。
ただ個人的には / の挙動が人間的で無いのには不満もあります。
将来的にモード切替は問題があるでしょうが、実験的に導入は良いと思います。
それができたら既存のコードの影響も調べられますので。


>   2) いわゆる、日常的な感覚での自動変換(int/int => Rational or int の
>      どっちかとか、都合のいいように変換とか)は、人間的であるがゆえに、
>      個々人のずれがあり、結局読みにくい(=人によってはびっくり)。

確かに個々人のずれはありますよね。
int/int => rational にしようがしまいが、どちらも「びっくり」する人がいる
のだと思います。自分はどちらであろうが「びっくり」するかな?逆に言うとあ
まり気にしません。精度が気になる時は実際に動かして調べれば良いだけの話か
なと感じています。

こんな話題が出たので少し考えてみたのですが、「/ は整数除算だ」というのは、
C言語等、CPUに合わせる考え方ですよね。こういう考え方に慣れてはいますが、
心のどこかでわずかに違和感があります。単純に計算の誤差を普段から気にせず
にプログラミングできたら素晴らしいなと感じます。

■/ をデフォルトで整数演算する(思いつきで並べています)
--- 理由 ---
・CPUの挙動がそうだから、言語実装もその方がやりやすい。
・コストが低い
・Rationalに変換すると、簡単な計算でも凄い数になる事があるから。
  [ruby-list:39520]
・今までそれを前提にしたプログラムの挙動が心配。
・そういう言語が多いから、他の言語に移った時にも心理的負担が少ない。
・自分はそれに慣れている。
・伝統だから。

--- デメリット ---
・内部での数値の型を意識しないといけない。
・いちいち変換の必要が生じる場合がある。

こうやって並べてみると、結局は皆さんも言われる様に、機械的な思考をするか、
人間的な思考をするかの問題が大きい様です。
(もちろん実際のプログラム上での問題はいろいろありますよね。)
個人的にこのデメリットは微妙ですが、なんだかかゆい感じがします。

実行時間のコストについては、本当に速度が欲しい場面では C言語でのライブラ
リが比較的簡単に作成できます。多少、実行時間のコストを削って / を自動変
換すれば、長い目でみたら人間の思考コストは軽減される気がします。
(移行時期はもちろん面倒ですが)
Rubyでは思考コストを追求し、C言語ライブラリで実行時間コストを補うのは、
バランスの面でも良いし、Rubyの本来のスタイルですよね。

#でもどこかで見た「Rubyは保守的である」というスタイルには矛盾するかな?

------
Nobuhiro Fujitaka
fujitaka@kt.rim.or.jp



In This Thread