In article <1043332863.217027.32687.nullmailer / picachu.netlab.jp>,
  matz / ruby-lang.org (Yukihiro Matsumoto) writes:

> horizontal layoutは面白いのですが、
...
> という理由で採用しにくいですね。

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

>   * 既存の言語の常識から離れているので、説明が面倒くさい

同意は求めませんが、私としてはその非常識である所が好きです。

>   * 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 が低級すぎるのが原因ですが...

> -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] だから衝突はしないん
じゃないのかなぁ。
-- 
[田中 哲][たなか あきら][Tanaka Akira]