[#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
[#2495] Re: 'in' vs. 'into' — Andrew Hunt <andy@...>
># rescue MyException into myVar
4 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:02429] Please join me, I'm Hashing documentation
From:
mrilu <mrilu@...>
Date:
2000-04-10 22:39:50 UTC
List:
ruby-talk #2429
This is a story about my hashing ventures, try to bear with me.
delete is good name.
delete_if is another one. And it's marvellous that there is reject! too.
I would like to see it to be symmetrical, so there's space for
plain reject. And it should be clearly said it's different from delete_if.
I wanted to patch, make the source better, but this time there was no
need for complex code enhancement. 1.5.newest contains already plain
reject. So I'm glad to see documentation to be updated to source level :=).
Then I recognized it. There is need for collaborative work to make the
documentation up to date.
I'm sure there'll be discussion how we can join our forces for better
world(tm), but I wanted to act in hurry. So I list all the routines declared
in hash.c's Init_hash() which are not mentioned in the docs.
One more note before details of hash. We need a clear guideline for
forecoming Ruby versions and standard coding when to name routine, routine!,
routine? or routine=. (Maybe this is already in the FAQ ?).
I mark my <enhancements or questions like this>. Please feel free to
correct my (buggy, as they say well in Japan:) english.
clone
<I still don't know the differences between dup and clone, so I guess>.
dup
dup is differs from clone by tainting the copy it makes (if the original
was tainted).
rehash
Recalculates hash code for each key.
Note: copies old hash one key by one to new, so needs twice as much
memory.
<already explained examples here, discussed earlier at the ruby-talk>
to_hash
<No idea whatsoever.>
to_s
Same as hash.to_a.to_s
inspect
returns string "{"+key.inspect+"=>"+value.inspect+key...+"}"
==
Returns true if for every key in hash1 hash1[key] == hash2[key].
<is this broken, should it be 'for every key in hash1 and hash2...'?>
store
same as []=. Store adds a key,value-pair or updates old one.
sort
same as hash.to_a.sort!.
Btw. it should be obvious that there's no need for sort!
but now it's said.
reject
same as hash.dup.delete_if
=======
Other topics:
Actually there's almost always need for method and method!. And of these two the method! is more important. Method could always be emulated easily hash.dup.method!.
Need for invert!.
Should update be !-method? Anyway there's need for nondestructive update
which is still mutable. (Maybe it should be named join).
def Hash.join(hash2)
hash2.keys{|k| hash[k]=hash2[k] unless hash.has_key?(k) }
end
default
<should it be default?>
From the docs it's not clear what's the difference of replace and update.
I guess replace is hash.clear.update(other_hash). (Added later:
glance to the code confirmed my guess, so no surprise here :).
There's two Hash.shift routines in the docs, I don't see the other on
the sources.
=====
Environment hash has following methods
apparently with the same functionality as hash methods:
[]
[]=
each
each_pair
each_key
each_value
delete
delete_if
reject!
reject
to_s
rehash
to_a
index
indexes
indices
size
length
empty?
keys
values
include?
member?
has_key?
has_value?
key?
value?
to_hash
Environment hash don't have the following methods of the hash:
new
[]-creation
initialize
clone
dup
inspect
==
fetch
store
default
default=
sort
shift
clear
invert
update
replace