まつもと ゆきひろです

In message "[ruby-math:00838] Re: [ruby-dev:19316] Re:  Re: -3**2 == 9 ?"
    on 03/01/24, Tanaka Akira <akr / m17n.org> writes:

|> という理由で採用しにくいですね。
|
|考え方を知るためのネタとして出したので、とくに採用すべきだというわけで
|はないです。

あ、もちろん。
なんで採用しないのかと思う人のための説明ですから。
そんな人はいないかもしれないけど。

|>   * 既存の言語の常識から離れているので、説明が面倒くさい
|
|同意は求めませんが、私としてはその非常識である所が好きです。

私もそうなんです。Pascalには会ったことがあります。なかなか好
青年な感じ。

|>   * yaccなどで実装しにくい
|
|ま、とりあえず 4倍くらいに膨らみますかね。
|
|%left tSP_PLUS_SP tSP_PLUS
|%left tSP_MUL_SP tSP_MUL
|%left tPLUS_SP tPLUS
|%left tMUL_SP tMUL
|
|exp : exp    tMUL    exp
|    | exp tSP_MUL    exp %prec tMUL
|    | exp    tMUL_SP exp %prec tSP_MUL_SP
|    | exp tSP_MUL_SP exp
|    | exp    tPLUS    exp
|    | exp tSP_PLUS    exp %prec tPLUS
|    | exp    tPLUS_SP exp %prec tSP_PLUS_SP
|    | exp tSP_PLUS_SP exp
|
|とか。機械的な組合せなのにもかかわらず手動で展開して書かなきゃいけないっ
|てのはどー考えても yacc が低級すぎるのが原因ですが...

「スペースひとつよりスペースふたつの方が遠い」とかは考慮しな
いんでしょうね。merdの実装は見てないんですが。

|> -vと-2については「-2はひとつの定数に見える」ということが大き
|> いのではないかと推測しています。もっともこれを主張しているの
|> は私だけなので、実は私の思いこみかも。
|
|見えるのはそうなんでしょうが、私の疑問はなぜそう見えるのかという所です。
|まぁ、それを言葉で正確に表現できるならそもそもこんなに試行錯誤してない
|という気もしますが、どうにかしてそれを理解できれば先々応用がきくかも知
|れないし。

うむ、なぜだろう。

|> -v ** 2に関しては、正直なところ私はあんまり我慢できてません。
|> でも、数学的伝統を無視するわけにもいかないしなあ。
|
|いかないしなあ、とかいいつつ我慢できてませんね?
|
|% ruby -ve 'v = 3
|a = -v ** 2
|p a'
|ruby 1.8.0 (2003-01-23) [i386-freebsd4.7]
|9

あら?

|> そもそも.1は許すべきではないのかも。ほかではメソッド呼び出し
|> のドットと衝突してうまくいかないことが多いし。
|
|禁止するかどうかはともかく、.[0-9] と .[_a-zA-Z] だから衝突はしないん
|じゃないのかなぁ。

トークンをひとつだけ読むだけでは区別しにくいってことですね。
ま、Rubyはほかにもいろいろ工夫してそういうのを回避してるんで、
要はやる気の問題なんでしょうが。

                                まつもと ゆきひろ /:|)