[#2332] Ruby-Python fusion? — mrilu <mrilu@...>
Usually I give some time for news to settle before I pass the word, but
7 messages
2000/04/01
[#2353] Re: Function of Array.filter surprises me — schneik@...
5 messages
2000/04/03
[#2361] crontab — Hugh Sasse Staff Elec Eng <hgs@...>
I want to have a program that may be run between certain times.
11 messages
2000/04/05
[#2375] Marshal: Want string out, but want depth specified? — Hugh Sasse Staff Elec Eng <hgs@...>
@encoded = [Marshal.dump(@decoded, , depth)].pack("m")
7 messages
2000/04/07
[#2378] Re: Marshal: Want string out, but want depth specified?
— matz@... (Yukihiro Matsumoto)
2000/04/07
Hi,
[#2376] Iterator into array — Dave Thomas <Dave@...>
15 messages
2000/04/07
[#2397] Could missing 'end' be reported better? — mrilu <mrilu@...>
I'm not sure one could easily parse, or moreover report, this error better.
5 messages
2000/04/08
[#2404] Re: Iterator into array — Andrew Hunt <andy@...>
>It's still possible to introduce a new syntax for collecting yielded
6 messages
2000/04/08
[#2412] Re: Could missing 'end' be reported better? — h.fulton@...
7 messages
2000/04/09
[#2414] Re: Could missing 'end' be reported better?
— matz@... (Yukihiro Matsumoto)
2000/04/09
Hi,
[#2429] Please join me, I'm Hashing documentation — mrilu <mrilu@...>
This is a story about my hashing ventures, try to bear with me.
5 messages
2000/04/10
[#2459] Precedence question — Dave Thomas <Dave@...>
7 messages
2000/04/12
[#2474] Ruby 1.4.4 — Yukihiro Matsumoto <matz@...>
Ruby 1.4.4 is out, check out:
5 messages
2000/04/14
[#2494] ANNOUNCE : PL/Ruby — ts <decoux@...>
7 messages
2000/04/17
[#2514] frozen behavior — Andrew Hunt <Andy@...>
7 messages
2000/04/19
[#2530] Re: 'in' vs. 'into' — Andrew Hunt <andy@...>
>Hmm, I've not decided yet. Here's the list of options:
6 messages
2000/04/20
[#2535] Default naming for iterator parameters — mrilu <mrilu@...>
I'm back at my computer after some traveling. I know I think Ruby
5 messages
2000/04/20
[#2598] different thread semantics 1.4.3 -> 1.4.4 — hipster <hipster@...4all.nl>
Hi fellow rubies,
4 messages
2000/04/28
[ruby-talk:02439] Re: Function of Array.filter surprises me
From:
mrilu <mrilu@...>
Date:
2000-04-11 00:24:48 UTC
List:
ruby-talk #2439
Since I started this thread I feel I have some responsibility to
give finishing touch to it. :=)
> [ Conrad ]
> # Meanwhile, I would like to see *every* mutator method without an !-form have
> # a standard alias to the corresponding !-form in the mean time. Then even
>
> Even though I think ruby already has too many aliases, this makes some sense,
> but only for methods for which a mutating version would be useful. But then,
> I don't think ruby's `filter' mutation is useful, so who am I to judge?
I can't agree that there's too many mutators, since those give you the
possibility to write your code to be self-descriptive. Many times
there just is need for different names for same operation in different
contexts. My opinion applies as long as current alias count doesn't explode.
But I do agree we need simple rules for !-form (among others). There's
two facets: mutating, destructing. I'm not sure if we should make this separation at the code level but it's good to know that not all mutating methods are
destructive. For example: array.sort! hardly loses information
(unless it's coded in the order of the array's content :).
Matz:
> > I'm not going to change `filter' behavior, so there would not be
> > `filter!'. But I may declare it deprecated in the future if I find
> > better name.
Good idea, indeed! I like your way to freeze things so that they can work
but at the same time make a promise for better future (tm). :)
> > Agreed. The reason for collect/filter is that I felt
> >
> > collect values in place
> >
> > is weird, comparing e.g.
> >
> > sort elements in place
> > substitute string in place
> >
> > But if you guys feel OK for collect!/map!, I sould seriously consider
> > renaming `filter'.
>
> Then don't think of it as `collect'! Think of it as `apply operation to each
> element of the list'. Coming from functional land, I think of map / collect
> as `for loop' (or rather, `for loop' as `map'). Maybe this is just a sign
> that collect isn't the best name :)
Ok. Here I have to say you both (Matz and Conrad) are right on my opinion.
I except the functions to have following behaviour:
p ['a', 'b', 'c', 'a', 'd'].collect{|i| i=='a'} # => ['a', 'a']
p ['a', 'b', 'c', 'a', 'd'].map {|i| i=='a'} # => [true, false, false,
true, false ]
I expect filter to have same functionality as above collect.
So I propose Matz should seriously consider to rename filter and whether
and under what names to introduce collect and some map variant.
> But I do agree with you that we should avoid semantic weirdness. But
> consistency always wins, at least for me.
I agree, totally! In about every case we should have both method and method!.
And as I said in other mail, method! is more important since method could be
usually coded as thing.dup.method!.
But it's not so obvious it would work everywhere. thing.dupping makes me
wonder what are the semantics of the dup, especially whether it does shallow,
deeper or deep copy.
In any case, Matz, whatever path you choose, let it be as systematical
as possible.
I mean, that while nowadays most of the people assume thing.delete to really
modify something let them do it in obvious way thing.delete! . Newcomers
are totally right with their possible belief thing.delete to make a
copy first.