[ruby-list:347] modify syntax(Re: operator)
From:
matz@... (Yukihiro Matsumoto)
Date:
1996-07-29 07:42:00 UTC
List:
ruby-list #347
まつもと ゆきひろです.
In message "[ruby-list:345] Re: operator"
on 96/07/23, 石塚圭樹 <keiju@shljapan.co.jp> writes:
|
|けいじゅ@SHLジャパンです.
|In [ruby-list :00344 ] the message: "[ruby-list:344] Re: operator ",
|on Jul/23 19:32(JST) matz@caelum.co.jp (Yukihiro Matsumoto) writes:
|
|>というわけでちょっと自分で考えて
|> * NOTはANDより強くする
|> * 「! foo arg」を解釈できるように
|>という感じで試験的に実装してみました.unless/untilの代わりが
|>無くなるのはちょっと痛い気もしますが実質的にはあまり問題が無
|>いようにも思います.
|
|この様な対応は, made in Japan の良さがあって非常に嬉しいのですが, 簡単
|にリリースしないで下さいね(^^;;;;;;;;
いろいろと考えて文法の変更を含めた以下の変更を行いました.文
句をつけるならまだ間に合います.
# 上司にEther cardを持って行かれたので今日1日私のPCはネット
# から孤立していますから.
(1) notはandよりも強い
not a and b == (not a) and b
(2) unlessとuntilの復活
ifとwhileの条件否定したものです.ほぼ1年ぶりの復活とな
ります.unlessはelsifの連係は無くてelseだけをつけること
ができます.もちろん修飾子にもなります.
(3) break,next,redo,retry,failのメソッド化
これらは単なるメソッドになります.予約語でありません.
ですから,alias continue nextなどということもできるよう
になります.
(4) Array#sortが配列をソートするのではなく,ソートした配列
を返すようにした.元の動作をするメソッドsort!もある.
この変更によって動かなくなるスクリプトはほとんど無いと思いま
すが,以下の条件に当てはまるものは修正が必要になるでしょう.
* until,unlessというローカル変数,メソッドを使っている
名前を変更してください.
* notの結合順位に依存している
式に括弧をつけてください
* sortが元の配列をソートすることを仮定している
sort!を使ってください
文法を変更したのでバージョンを0.99.1にします.明日いっぱいま
で公開は待って(文句を受け付けて),明後日以降公開しようと思い
ます.その時には(英語)ドキュメントも実態に合わせて変更してお
きます.
まつもと ゆきひろ /:|)