From: ta-ka-si@... Date: 2000-03-01T09:39:56+09:00 Subject: [ruby-dev:9329] Re: 代入 In message "[ruby-dev:9325] Re: 代入" on "WATANABE Hirofumi" wrote: > わたなべです. > > ta-ka-si@blue.auc.co.jp writes: > > :代入が右辺に来てはいけないのでしょうか? > > うーむ. 何を意味してるのかさっぱりわからない. 申し訳ありません。 よくアルゴリズムの例にあるような、左辺に式を書き、右辺に 左辺値が来るという書式をRubyでサポートする、ということです。 式をそのまま書く系の言語においては、このようなサポートは なかなかないのではと思ったもので、本質的にまずい点があろうかと 思ったところです。 > 具体例を挙げてください. 1 -> foo foo + 1 -> foo むしろ、2つ目のように、初心者に理解しやすい構文になろうかと 思います。(この文字 '->' がそういう風に見えるだけでしょうけど) 僕はパーサについては分からないので、どのような文字が適切かは 識者にお願い致します。 > :行が長くなったり、変数にしないとまずかったとかいうのを > :行末で思うことがたびたびあります。 > > foo が変数として > foo > = 1 > とは書けないってことでしょうか? = の意味を拡張する以外はその通りだと思います。 > :書いてない人にはかなり辛い仕打ちですが… > > これも意味不明です. 左辺値が左に存在するのは、ふつうの言語では当たり前だと思いますし、 Rubyも例外ではありませんでした。この構文が許されることになると、 左側に左辺値がなくとも、左辺値としての副作用が後ろの行に存在する ことを、行頭でもある程度認識しておかないといけなくなることも 慣れないうちは考えられると思ってのことです。 実際、 Dir[File.expand_path '~/Mail/mail/*'] -> ary ary.collect {|i| open(i).grep(/\AFrom:/).display } とか、行の折り返しがあるときでも気軽には書けると思います。 -- 池田孝志