[#1816] Ruby 1.5.3 under Tru64 (Alpha)? — Clemens Hintze <clemens.hintze@...>

Hi all,

17 messages 2000/03/14

[#1989] English Ruby/Gtk Tutorial? — schneik@...

18 messages 2000/03/17

[#2241] setter() for local variables — ts <decoux@...>

18 messages 2000/03/29

[ruby-talk:02019] Re: Ruby Syntax similar to other languages?

From: "Conrad Schneiker" <schneiker@...>
Date: 2000-03-19 07:10:03 UTC
List: ruby-talk #2019
From: Quinn Dunkan <quinn@envy.ugcs.caltech.edu>

> > From: Yukihiro Matsumoto <matz@netlab.co.jp>
> > > 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), which I
> > wouldn't want to see replaced by individual methods, since I (currently)
> > think it is much more natural to regard all of these things as
variations on
> > a common theme.
> >
> > Since I also use vi (actually gvim, a vastly improved GUI-based
extension of
> > vi) all the time and have used perl a lot in the past, "s" seems like
the
> > simplest and most natural name for what also seems to be most naturally
> > regarded as a single method. Actually, since awk always seemed awkward
to me
> > even before I discovered perl, maybe I should say that because I think
"s"
> > this is a more natural way to think of substitution, I happened to like
the
> > way that vi and perl do it.
>
> Well, the way ruby does things currently makes sense to me.  And ruby's
> Regexps already support parameters: /foo/i  But 'g' doesn't make sense as
a
> Regexp flag, it's a parameter to only the sub method.

Did you mean proposed parameter to the sub method? Why then would you not
regard the i, o, p, and x flags as potential sub method parameters as well?
However, from a more pattern-centric perspective, it might make more sense
to regard 'g' as another option/al flag (i.e. as another regexp option/al
parameter).

> I *would* argue against
> calling the method 's', even though I too have used vim since 1.0 on the
> amiga: sub is only two characters longer and so much more descriptive.
It's
> fine that editors use 's', but an editor is not a general-purpose
programming
> language (have you tried to read a screenful of complicated vi macros?).

You are comparing apples to orangutans, but yes. You would have to change a
lot more than one or two methods to make Ruby code look anything even
remotely similar.

> I like the fact that ruby is not vi, sed, and perl.

And hopefully, someday, is not awk in a similar sense either.

> So I have no problem with file://.sub vs file://.gsub  I also have no
problem with
> file://.sub('repl', g=1) or whatever.  But abbreviating to single
characters and
> inventing special calling semantics so you can write like a
special-purpose
> language I don't like so much.

No problem. I don't care about literally using 's' instead of 'sub', I was
just (unclearly--sorry) using "s" to designate the single method versus
multiple method perspective.

In fact, for example, except for $_ and $&, I generally prefer to use the
longer and more self-descriptive "use English" versions of Perl's special
variables, although some of them I think are a little too long. I wish Ruby
had originally designed in something of a happy medium for these things.

Conrad

In This Thread