------art_16754_7159859.1155965589129
Content-Type: text/plain; charset=ISO-2022-JP; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

岩月とます。

ruby-devネタかもと思いつつこちらへ。
in演算子は面白いと思いましたので、
ためしにCVS HEADで実装してみました。

% ruby -ve "ary  1, 2, 3];s  ;if s in ary; p(true); end"
ruby 1.9.0 (2006-08-19) [i386-freebsd6.1]
true

内部で右辺オブジェクトのinclude?メドを呼び靴泙垢里如
蜴竚粤燭鮖っていないオブジェクトを右辺に置くとエラーになります。
エラーメッセージに生々しくinclude?と泙造族善の余地あり?)。

% ruby -ve "n  00;s  ;if s in n; p(true); end"
ruby 1.9.0 (2006-08-19) [i386-freebsd6.1]
-e:1: undefined method `include?' for 100:Fixnum (NoMethodError)

andやorと同じような扱いですので、
メドの引数に使うときは括弧を2します。

% ruby -ve "p(1 in [1, 2, 3])"
ruby 1.9.0 (2006-08-19) [i386-freebsd6.1]
-e:1: syntax error, unexpected keyword_in, expecting ')'
p(1 in [1, 2, 3])
      ^
-e:1: syntax error, unexpected ')', expecting $end

% ruby -ve "p((1 in [1, 2, 3]))"
ruby 1.9.0 (2006-08-19) [i386-freebsd6.1]
true


この実装自身はともかく、in演算子は見た目わかりやすくなって
好印象です。Ruby 1.8.xへの導入には躊躇しますが、
Ruby 1.9への導入には賛同します。

# やっぱり ruby-dev ネタかな。

-- 
IWATSUKI Hiroyuki <URL:mailto:don / na.rim.or.jp>

------art_16754_7159859.1155965589129
Content-Type: application/octet-stream; name=ruby-parser.y-1.451-in.diff
Content-Transfer-Encoding: base64
X-Attachment-Id: f_er1jb6v3
Content-Disposition: attachment; filename="ruby-parser.y-1.451-in.diff"

LS0tIHBhcnNlLnkJMTkgIDggMjAwNiAxMjo1ODozMyArMDkwMAkxLjQ1MQorKysgcGFyc2UueQkx
OSAgOCAyMDA2IDEzOjQ1OjA1ICswOTAwCQpAQCAtNTg4LDcgKzU4OCw3IEBAIHN0YXRpYyB2b2lk
IHJpcHBlcl9jb21waWxlX2Vycm9yKHN0cnVjdCAKICVub25hc3NvYyB0TEJSQUNFX0FSRwogCiAl
bm9uYXNzb2MgIG1vZGlmaWVyX2lmIG1vZGlmaWVyX3VubGVzcyBtb2RpZmllcl93aGlsZSBtb2Rp
Zmllcl91bnRpbAotJWxlZnQgIGtleXdvcmRfb3Iga2V5d29yZF9hbmQKKyVsZWZ0ICBrZXl3b3Jk
X29yIGtleXdvcmRfYW5kIGtleXdvcmRfaW4KICVyaWdodCBrZXl3b3JkX25vdAogJW5vbmFzc29j
IGtleXdvcmRfZGVmaW5lZAogJXJpZ2h0ICc9JyB0T1BfQVNHTgpAQCAtMTAyNSw2ICsxMDI1LDE0
IEBAIHN0bXQJCToga2V5d29yZF9hbGlhcyBmaXRlbSB7bGV4X3N0YXRlID0KIAkJOwogCiBleHBy
CQk6IGNvbW1hbmRfY2FsbAorICAgICAgICAgICAgICAgIHwgZXhwciBrZXl3b3JkX2luIGV4cHIK
KyAgICAgICAgICAgICAgICAgICAgeworCQkgICAgICAvKiUlJSovCisJCSAgICAgICAgJCQgPSBj
YWxsX29wKCQzLCByYl9pbnRlcm4oImluY2x1ZGU/IiksIDEsICQxKTsKKwkJICAgICAgLyolCisJ
CQkkJCA9IGRpc3BhdGNoMyhiaW5hcnksICQxLCByaXBwZXJfaW50ZXJuKCJpbiIpLCAkMyk7CisJ
CSAgICAgICUqLworCQkgICAgfQogCQl8IGV4cHIga2V5d29yZF9hbmQgZXhwcgogCQkgICAgewog
CQkgICAgLyolJSUqLwo------art_16754_7159859.1155965589129--