On Thu, Feb 28, 2008 at 3:15 PM, Yukihiro Matsumoto
<matz ruby-lang.org> wrote:
> Hi,
>
> In message "Re: [ANN] MacRuby"
>
> on Fri, 29 Feb 2008 08:04:38 +0900, "Laurent
Sansonetti" <laurent.sansonetti gmail.com> writes:
>
> |> I still think having dedicated syntax for
Objective-C call is better
> |> than overriding normal call.
> |>
> |>
> |> duck.foo: 1 bar: 2
> |>
> |> or
> |>
> |>
> |> duck.foo: 1, bar: 2
> |>
> |> maybe? I am not sure if the parser allows this
or not yet.
> |>
> |
> |I have been thinking about this too, but I personally
believe that it
> |doesn't reveal very pretty when messaging Objective-C
methods with
> |only one argument.
> |
> | duck.foo: 1
>
> You can still map one-argument method to duck.foo(1)
as it does now.
>
Yes, but it won't be consistent with multiple-argument calls
then.
> |But maybe we will switch to it soon, because it's
more consistent with
> bjective-
C (no potential ambiguities). But it doesn't feel very
Ruby.
>
> That is very important design decision.
Objective-C-ish calling or
> Ruby-ish calling. The latter makes program
consistent, but the former
> makes program obvious. Hmm.
>
Definitely! I have been thinking about this a lot, but I
couldn't come
with something better than what's currently in MacRuby.
duck.foo # may call foo
duck.foo(1) # may call foo:
duck.foo(1, key:2) # may call foo:key:
There is also the problem of defining methods with keyed
arguments. Currently:
def foo(x, key:y); end # will register foo:key:
Laurent
|