hal9000 / hypermetrics.com wrote: > > > |But I still think, as a special case, it woudl be a good idea if > > | x in y > > |meant the same as > > | y.include? x > > | > > |It is "pretty" (IMO) in the same way that the for loop is pretty... > > > > It's possible, because 'in' is the reserved word, so that `x in y' is > > not valid now. Let us discuss about name, behavior, and > > least-surprise-ness. ;-) > > > > Certainly let's discuss it then... ;) > > I propose that the (pseudo) operator "in" (named as such) should > result in a call to include? "under the hood," i.e., x in y or > any arbitrary pair of objects x and y, should behave exactly the > same as y.include? x, returning true or false and making possible > syntax like: if node in binary_tree then ... > > Now, is there any hidden catch, any unforeseen complication that > I am unaware of? > Well, I considered the following: if node in binary_tree then print "found node!\n"; end vs. for node in binary_tree; print "current node is #{node}\n"; end But such an ambiguity could probably be resolved in the grammar for 'if' and 'for'. I hope it would cover such things as: for node in binary_tree; if node in binary_leaf then for i in 0..2; print "it's a leaf!\n"; end; end; end Guy N. Hurst -- HurstLinks Web Development http://www.hurstlinks.com/ Norfolk, VA - (757)623-9688 PHP/MySQL - Ruby/Perl - HTML/Javascript