T. Onoma
11/18/2003 10:15:00 AM
> Hi gurus and nubys,
>
> Again here to bother you :)
whos the bigger bother? :) and i wouldn't think you could be rude. (well, maybe if you REALLY tried)
> I wonder:
> why we introduce the ':' syntax ?
its an obvious refection of the new hash syntax. in essence he's saying:
def f(a,:b=>2,**kwd) # == def f(a,b:2,**kwd)
> Why can't we call a kwd arg like
> f(1,b=5)
>
> I suppose this is to avoid conflicts with normal assignment..
> but what's wrong with making go away the assignment in method calling?
i dobt that should go away, but to be honest, i am stumped on the sytax too. when i first saw it i thought "why more syntax" the parameters already have names. we only need a way to specify them in the method call, not in the def!
that's were your = doesn't work. you can make an assignment in a method invocation. that's just common place. (perhaps not used a lot, but enough) but adding => or : sugar to calls causes a conflict with the way in which ruby currently handles hash parameters. so somethings got to give, in order to do:
f(1,:b=>5)
> PS
> btw the 'a: c' syntax for hash is really cool.
>
> I always hate to type 'a'=>b or :a=>b.
got a feeling symbols are going to get a lot more use if this happens. not sure how i feel about it. its certainly not bad, but it means even more syntax to understand. "hey nuby, a:4 and :a=>4 mean the same thing."
> Nobody expects a string literal or a regexp literal to work like the
> rest of the code.
in what way?
> But we expect this from Arrays and Hashes (and somewy Ranges).
> This must mean something.
yes, it cetainly does.
> Possibly that I need more coffe in the morning.
i'll drink to that.
thanks for the bother,
-t0