[#3741] Re: Why it's quiet -- standard distribution issues — Aleksi Niemel<aleksi.niemela@...>
I think it's the feature of the mailing list archive to create a threads of
[#3756] RE: XMP on comments — Aleksi Niemel<aleksi.niemela@...>
> require "xmp"
[#3766] modulo and remainder — Dave Thomas <Dave@...>
[#3776] Kernel.rand — Aleksi Niemel<aleksi.niemela@...>
How about defining:
[#3781] Widening out discussions — Dave Thomas <Dave@...>
[#3795] Re: Array.uniq! returning nil — Aleksi Niemel<aleksi.niemela@...>
> As matz said in [ruby-talk:3785] and Dave said in [ruby-talk:1229],
Hi, Aleksi,
[#3823] Re: Array.pick — Aleksi Niemel<aleksi.niemela@...>
> > Just a general comment--a brief statement of purpose and using
[#3827] JRuby? — Aleksi Niemel<aleksi.niemela@...>
Is there or will there be Ruby equivalent of JPython?
[#3882] Re: Array.uniq! returning nil — Aleksi Niemel<aleksi.niemela@...>
> |look too strange, confusing, or cryptic. Maybe just @, $, %, &.
Hi,
[#3918] A question about variable names... — Dave Thomas <Dave@...>
[#3935] If your company uses Pallets, Skids, Boxes, Lumber, etc. — pallets2@...
[#3956] Tk PhotoImage options — andy@... (Andrew Hunt)
Hi all,
[#3971] Thread and File do not work together — "Michael Neumann" <neumann@...>
following example do not work correctly with my ruby
[#3986] Re: Principle of least effort -- another Ruby virtue. — Andrew Hunt <andy@...>
> Principle of Least Effort.
Hi,
[#4005] Re: Pluggable functions and blocks — Aleksi Niemel<aleksi.niemela@...>
Aleksi makes a question:
[#4008] Ruby installation instructions for Windows — Aleksi Niemel<aleksi.niemela@...>
I had to write these instructions for my friends. I thought it might be nice
[#4043] What are you using Ruby for? — Dave Thomas <Dave@...>
On 15 Jul 2000 22:08:50 -0500,
Hi,
[#4057] Re: What are you using Ruby for? — Aleksi Niemel<aleksi.niemela@...>
Johann:
[#4082] Re: What are you using Ruby for? — Aleksi Niemel<aleksi.niemela@...>
[#4091] 'each' and 'in' — hal9000@...
I just recently realized why the default
[#4107] Re: 'each' and 'in' -- special char problem? — schneik@...
[#4114] Method signature - a question for the group — Dave Thomas <Dave@...>
[#4139] Facilitating Ruby self-propagation with the rig-it autopolymorph application. — Conrad Schneiker <schneik@...>
Hi,
[#4158] Getting Tk to work on Windows — "Michael Neumann" <neumann@...>
Hi....
[#4178] Partly converted English Ruby/Tk widget demo working. — Conrad Schneiker <schneik@...>
Hi,
[#4234] @ variables not updated within method? — Hugh Sasse Staff Elec Eng <hgs@...>
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
On 27 Jul 2000, Dave Thomas wrote:
[#4267] Ruby.next, Perl6, Python 3000, Tcl++, etc. -- Any opportunities for common implementation code? — "Conrad Schneiker" <schneiker@...>
Hi,
"Conrad Schneiker" wrote:
[ruby-talk:03890] Re: Array.uniq! returning nil
Hi,
In message "[ruby-talk:03882] Re: Array.uniq! returning nil"
on 00/07/06, Aleksi Niemel<aleksi.niemela@cinnober.com> writes:
|> Basicly one should use copying (non-bang) version of the
|> methods.
|
|Why's that so? I mean it's a nice policy, but then we should be using it as
|consistenly (and much) as possible. But that's not good for performance.
Well, modifying may cause confusion. For example,
a = "my name is matz."
b = a
a.sub!(/matz/, "Aleksi")
puts a
# prints "my name is Aleksi", it's OK.
puts b
# prints "my name is Aleksi", too. it may be confusing.
Bang methods should be used by the expert who is taking one's risk.
That's why bang-methods contains ugly bang sign.
If I create these methods from scratch, it is possible for me to make
the bang methods always return self. But CHANGING behavior will crash
fair amount of programs. Only options I can think of are:
(a) introduce new methods (but not gsub!? please)
(b) introduce additional optional argument (as Hugh proposed in
[ruby-talk:03863])
|I can see:
|
| a = ["fo", "ha"].collect do |txt| txt+"r" end
|
|should have been (forced and) coded as
|
| addR = proc do |txt| txt+"r" end
| a = ["fo", "ha"].collect(addR)
|
|In the latter example the self-modifying part is splitted.
This chunk of code does not contain self-modifying part.
|Well, my strongest argument is yet to come. If the difference between method
|and method! would be just the fact the latter modifies in-place, it'd be:
|1) easy to learn
|2) easy to remember
|3) and most of all, very easy to make performance changes to the existing
| code
If bang-methods does not have nasty (well, kinda) side-effect, I'd
love to make them default (non-bang) to enhance total performance.
But sadly we have to choose either performance or side-effect. Only
thing I can do is put the warning sign (both name and behavior) to
tell them it's relatively (and slightly) danger.
matz.