> |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?

Since it mimics an operator, it will have to have a precedence.
That's all that comes to my mind. If I had had more sleep last
night, I might have an opinion about high versus low... :)
Presumably we could fix it so that for all operaors op1 and op2,
a op1 b in c op2 d  would mean the same as the expression
a op1 c.include?(b) op2 d.

Does anyone but me like this proposal at all?

Hal

--
Hal Fulton


Sent via Deja.com http://www.deja.com/
Before you buy.