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