[#2617] irb for 1.5.x — Andrew Hunt <Andy@...>
5 messages
2000/05/03
[#2639] OT: Japanese names — Dave Thomas <Dave@...>
4 messages
2000/05/09
[#2643] Ruby Toplevel — Dave Thomas <Dave@...>
7 messages
2000/05/09
[#2656] Re: Append alias for Array.append? — Aleksi Niemel<aleksi.niemela@...>
Hideto ISHIBASHI:
5 messages
2000/05/09
[#2660] win OLE / eRuby — Andrew Hunt <Andy@...>
8 messages
2000/05/09
[#2663] Re: win OLE / eRuby — Aleksi Niemel<aleksi.niemela@...>
>At Tue, 9 May 2000 09:14:51 -0400,
4 messages
2000/05/09
[#2667] The reference manual is now online — Dave Thomas <Dave@...>
6 messages
2000/05/09
[#2668] Re: The reference manual is now online — schneik@...
4 messages
2000/05/09
[#2685] Re: Tainting — ts <decoux@...>
>>>>> "D" == Dave Thomas <Dave@thomases.com> writes:
6 messages
2000/05/10
[#2702] Re: Append alias for Array.append? — Andrew Hunt <andy@...>
>From: Aleksi Niemel<aleksi.niemela@cinnober.com>
7 messages
2000/05/10
[#2752] RE: Array.pop and documentation [was: Append al ias for Array.append?] — Aleksi Niemel<aleksi.niemela@...>
6 messages
2000/05/11
[#2758] Re: irb install — Andrew Hunt <andy@...>
>|Excellent! Will you consider adding mod_ruby to install_app as
7 messages
2000/05/11
[#2777] Re: irb install
— "NAKAMURA, Hiroshi" <nakahiro@...>
2000/05/12
Hi,
[#2764] More code browsing questions — Albert Wagner <alwagner@...>
I see some class definitions contain "include" and "extend" statements.
6 messages
2000/05/12
[#2793] After-the-fact installation questions — Albert Wagner <alwagner@...>
I probably should have asked this before I installed. I unpacked
4 messages
2000/05/12
[#2843] Re: editors for ruby — "Conrad Schneiker" <schneiker@...>
(Posted on comp.lang.ruby and ruby-talk ML.)
6 messages
2000/05/17
[#2874] RE: simple httpd for local use — Aleksi Niemel<aleksi.niemela@...>
> I personally use it for access to full-text indexed linux
6 messages
2000/05/18
[#2875] Re: simple httpd for local use
— hipster <hipster@...4all.nl>
2000/05/18
On Thu, 18 May 2000 09:10:28 +0200, Aleksi Niemelwrote:
[#2920] SWIG: virtual variable? — Yasushi Shoji <yashi@...>
hello,
4 messages
2000/05/22
[#2928] FYI: What our Python friends are up to. — "Conrad Schneiker" <schneiker@...>
Hi,
8 messages
2000/05/22
[#2964] Thank you — h.fulton@...
Thanks, Matz (and others) for your replies to
4 messages
2000/05/24
[#2973] Re: Socket.getnameinfo — ts <decoux@...>
>>>>> "D" == Dave Thomas <Dave@thomases.com> writes:
10 messages
2000/05/25
[#3016] rbconfig.rb — Dave Thomas <Dave@...>
5 messages
2000/05/28
[#3039] Re: Final for World Series: Python vs Ruby — "Dat Nguyen" <thucdat@...>
1 message
2000/05/30
[#3058] FailureClass? — Aleksi Niemel<aleksi.niemela@...>
Question arising from the FAQ:
7 messages
2000/05/31
[ruby-talk:02798] Re: Array.pop and documentation [was:Append alias for Array.append?]
From:
Aleksi Niemel<aleksi.niemela@...>
Date:
2000-05-12 18:11:55 UTC
List:
ruby-talk #2798
Albert asked:
> I hope it's OK for a newbie to comment here. Why complicate
> things with three signatures? Why not just:
> slice(n,m)
> where n=pos & m=length
> so that:
> slice(0,1) # slice_low 1st
> slice(0,3) # slice_low(3) 1st 3
> slice(-1,1) # slice_high last
> slice(-3,3) # slice_high(3) last 3
Asking such questions isn't bad thing to do! There might be others in the
same situation just too stupid, busy or scared to do the right thing (tm).
If you manage to convince us that such wordiness is bad thing, you can
affect the future of the whole community. Thus, communication and discussion
is not wasted bandwidth and time but really important and almost a
requirement for good evolution.
Well, my easy answer would be 'for readability and writability' (== more cod
able and maintainable).
My longer one, or at least the few I could come up with easily:
1)
Version using two arguments compared to named version is shifting action
from named functionality to the direction where semantic meaning is hided
inside syntax.
One could ask why stop to slice(0,1) version? We could transform all the
function names to certain numbers and write instead '283(0,1)' and actually
punctuation eases things, so maybe we should get rid of it too.
2)
For TIMTOWTDI ('There Is More Than One Way To Do It', Perl marketed acronym
which Ruby has inherited, IMHO The Very Good Thing). Allowing people to be
as clean as possible doesn't hurt anybody. On the other hand getting rid of
slice(n,m) loses functionality and one can't write
array.slice!(*calc_where_to_remove_and_how_many())
So we should really have all those signatures.
3)
For 'Don't repeat yourself'.
The versions you wrote include some unnecessary duplication.
a = remove_this_many_from_the_end_of_the_array
slice!(-a, a)
Why would you like to repeat 'a' two times, if you don't have to?
Ok, if I didn't make my point clear let me show the worse case for the same
thing:
slice!(-remove_this_many_frm_the_end_of_the_array,
remove_this_many_frm_the_end_of_the_array)
Oh, and then you probably noticed you made a spelling error '_frm_' and have
to correct it to two places (mostly non-issue in the era of useful editors,
provided one uses them properly).
This point is contradictory, however, because we're implementing many ways
to do the same thing, so repeating ourselves to some extent.
4)
For this one I'm not even sure, but I could imagine slice_low to be faster
than slice(0,1) (no unnecessary parameter passing). Since we're
interpreting it (most likely) anyway, this is no big deal. (And maybe I
have to add that for 'Don't repeat yourself' we would implement this as a
C-routine slice_low calling slice_two_arg(0,1), which actually makes more
overhead than to call slice_two_arg directly).
----
Anyway, it's quite much about the balance. It wouldn't be nice if the
standard libraries are bloated with aliases and signatures thus reserving
all the good variable and function beforehand. Moreover it makes things
harder to learn, code and maintain.
- Aleksi