Good morning, (for me :)

matz dixit:

> Hi,
> 
> In message "[ruby-talk:02003] Re: Ruby Syntax similar to other languages?"
>     on 00/03/18, "Conrad Schneiker" <schneiker / jump.net> writes:
> 
> |> What's the benefit of foo.s(/pat/, "repl", "g") over foo.gsub(/pat/,
> |"repl")?
> |
> |In vi, sed, and perl, you don't thing of sub and gsub as being two different
> |methods, but rather as a single method that is modulated by optional
> |parameters--including g, i, s, m, o, e, and x in perl (IIRC), <snip>

I pretty much agree with Clemens in this one... presenting a single interface looks much more tidy and clean for this kind of operation... (I can understand the rationale behind sub and sub!, I am used to it from scheme... but why separating the global from the 'just once' or other possibilities?

> Hmm, although I think options i, s, m, o, and x should belong to
> regexp, I can understand your opinion.

Certainly, options should belong to the re... that would make it

string.s(/regex/imx, "replacement" [, OVERWRITE])

or maybe:

string.s(/regex/imx, "replacement")
string.s!(/regex/imx, "replacement")

> Hmm, are you proposing new syntax to do that?

I'd provide it as sintactical sugar for .sub and .gsub if that's more politically correct... but I think Clemens had a real good idea there and providing a simpler interface is the Right Thing...

> A method like Clemens suggested in [ruby-talk:01962] can be added
> relatively easily, but introducing syntax like s/RE/STR/ is another
> story, which I can hardly accept.

Certainly, it's not natural with Ruby... 

Even ``string =~ /regex/i'' looks unnatural... (even very familiar to sed, vi, Perl users)

I'd rather reduce interfaces to ``string.m(/regex/i)'' which feels more like OO to me: apply the m(atch) method to object ``string'' with this regex object ``/regex/'' with options ``i''

Again it feels more like the Right Thing...

On the other hand, it's your language :) But I honestly think it would make learning and use easier and tidier...

best regards,
d@
-------------------------------------------------------------
Mensaje enviado gracias al correo gratuito de Demasiado Corp.
[ http://correo.demasiado.com ]
-------------------------------------------------------------