From: Guoliang Cao Date: 2004-02-05T03:00:04+09:00 Subject: Re: RCR draft for enhanced "case..when..else..end" syntax ---- Original Message ---- > Austin Ziegler wrote: >> On Wed, 4 Feb 2004 01:00:25 +0900, Gennady wrote: >> >>>Guoliang Cao wrote: >>>Do you know about this syntax currently available? >> >> >>>a = "aaa" >>>b = "bbb" >>>case >>> when a == "aaa", b == "bbb" >>> puts "Lowercase detected" >>> when a == "AAA", b == "BBB" >>> puts "Uppercase detected" >>> else >>> puts "Detection failed" >>>end >> >> >> What you've written here will do alternatives checks. Thus, if you have: >> >> a = "aaa" >> b = "BBB" >> >> then "Lowercase detected" will be printed. With "AAA" and "bbb", "Lowercase >> detected" will still be printed. I think this is very tricky. ',' equals to '||' here. This should be made very clear otherwise people should avoid use this form. Cao > Nice investigative job ;-). But remember that it was only a quick > demonstration of a "hidden" case syntax. >> >> irb(main):001:0> def ct(a, b) >> irb(main):002:1> case >> irb(main):003:2* when a == "aaa", b == "bbb" >> irb(main):004:2> puts "Lowercase" >> irb(main):005:2> when a == "AAA", b == "BBB" >> irb(main):006:2> puts "Uppercase" >> irb(main):007:2> else >> irb(main):008:2* puts "Failed" >> irb(main):009:2> end >> irb(main):010:1> end # => nil >> irb(main):011:0> ct("aaa", "bbb") # Lowercase => nil >> irb(main):012:0> ct("aaa", "BBB") # Lowercase => nil >> irb(main):013:0> ct("AAA", "BBB") # Uppercase => nil >> irb(main):014:0> ct("AAA", "bbb") # Lowercase => nil >> >> -austin >> -- >> austin ziegler * austin@halostatue.ca * Toronto, ON, Canada >> software designer * pragmatic programmer * 2004.02.04 >> * 11.53.52 >> >> >> > Gennady.