[#4341] DRY and embedded docs. — Hugh Sasse Staff Elec Eng <hgs@...>
If I have a here document in some ruby program:
[#4347] Re: DATA and rewind. — ts <decoux@...>
>>>>> "H" == Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
[#4350] Re: Thirty-seven Reasons [Hal Fulton] Love[s] Ruby — "David Douthitt" <DDouthitt@...>
[#4396] Re: New Require (was: RAA development ideas (was: RE: Looking for inp ut on a 'links' page)) — Hugh Sasse Staff Elec Eng <hgs@...>
On 9 Aug 2000, Dave Thomas wrote:
[#4411] Re: RAA development ideas (was: RE: Lookin g for inp ut on a 'links' page) — Aleksi Niemel<aleksi.niemela@...>
Me:
On Thu, 10 Aug 2000, [iso-8859-1] Aleksi Niemelwrote:
[#4465] More RubyUnit questions. — Hugh Sasse Staff Elec Eng <hgs@...>
I am beginning to get a feel for this, but I still have a few more
[#4478] Re: RubyUnit. Warnings to be expected? — ts <decoux@...>
>>>>> "H" == Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
[#4481] Invoking an extension after compilation — Dave Thomas <Dave@...>
Hi,
[#4501] What's the biggest Ruby development? — Dave Thomas <Dave@...>
[#4502] methods w/ ! giving nil — Hugh Sasse Staff Elec Eng <hgs@...>
I have got used to the idea that methods that end in '!' return nil if
[#4503] RubyUnit and encapsulation. — Hugh Sasse Staff Elec Eng <hgs@...>
My_class's instance variables are not all "attr :<name>" type variables,
[#4537] Process.wait bug + fix — Brian Fundakowski Feldman <green@...>
If your system uses the rb_waitpid() codepath of rb_f_wait(),
[#4567] Re: What's the biggest Ruby development? — Aleksi Niemel<aleksi.niemela@...>
Dave said:
Robert Feldt <feldt@ce.chalmers.se> writes:
On Sat, 26 Aug 2000, Dave Thomas wrote:
Robert Feldt <feldt@ce.chalmers.se> writes:
On Mon, 28 Aug 2000, Dave Thomas wrote:
Robert Feldt <feldt@ce.chalmers.se> writes:
[#4591] Can't get Tcl/Tk working — Stephen White <steve@...>
I can't get any of the samples in the ext/tk/sample directory working. All
I'm sure looking forwards to buying the book. :)
Stephen White <steve@deaf.org> writes:
On Sun, 27 Aug 2000, Dave Thomas wrote:
Stephen White <steve@deaf.org> writes:
[#4608] Class methods — Mark Slagell <ms@...>
Reading the thread about regexp matches made me wonder about this:
[#4611] mod_ruby 0.1.19 — shreeve@...2s.org (Steve Shreeve)
Shugo (and others),
[#4633] Printing tables — DaVinci <bombadil@...>
Hi.
[#4647] Function argument lists in parentheses? — Toby Hutton <thutton@...>
Hello,
[#4652] Andy and Dave's European Tour 2000 — Dave Thomas <Dave@...>
Hi,
[#4672] calling super from c — Robert Feldt <feldt@...>
[#4699] Double parenthesis — Klaus Spreckelsen <ks@...1.ruhr-uni-bochum.de>
Why is the first line ok, but the second line is not?
[ruby-talk:04418] Array#hash ruby rewrite
I guess Array#hash does not work very well. Here's an example and Ruby
version of simple fix. I'm sure we can tweak it to even better. I just
wanted to raise this issue, tried not very hard to solve it.
This is probably completely unrelated to the hash[key]=value unlinearity
problem, which seems to be about GC. Anyway, it reminded me.
class Array
def shuffle
for i in 0...size
r=rand(size())
self[i],self[r]=self[r],self[i]
end
self
end
end
def puts_hash_comparison(ary1, ary2)
puts("#{ary1.inspect}.hash == #{ary2.inspect}.hash",
sprintf("%#{ary1.inspect.length+5}d == %d -> %s",
ary1.hash, ary2.hash, ary1.hash==ary2.hash))
end
def test_array_hash
puts_hash_comparison(%w(a b), %w(b a))
puts_hash_comparison(%w(d e), %w(e d))
puts_hash_comparison(%w(d f), %w(f d))
puts_hash_comparison(%w(ab bc), %w(bc ab))
ary=%w(a b c de )
10.times do
puts_hash_comparison( ary, ary.dup.shuffle)
end
end
puts "\nAll or most of these should say false!"
test_array_hash
class Array
def hash
key = 0
for elem in self[0,self.size]
key = (key * 65599 + elem.hash) % (2 ** 31)
end
key
end
end
puts "\nAll or most of these say false!"
puts "The hash function is stolen from String#hash, and I'm sure it"
puts "could be tweaked or even replaced with better one."
test_array_hash
#################
And the output:
#################
All or most of these should say false!
["a", "b"].hash == ["b", "a"].hash
1 == 1 -> true
["d", "e"].hash == ["e", "d"].hash
3 == 3 -> true
["d", "f"].hash == ["f", "d"].hash
0 == 0 -> true
["ab", "bc"].hash == ["bc", "ab"].hash
196802 == 196802 -> true
["a", "b", "c", "de"].hash == ["c", "a", "de", "b"].hash
6560101 == 6560101 -> true
["a", "b", "c", "de"].hash == ["a", "c", "de", "b"].hash
6560101 == 6560101 -> true
["a", "b", "c", "de"].hash == ["b", "c", "a", "de"].hash
6560101 == 6560101 -> true
["a", "b", "c", "de"].hash == ["a", "de", "b", "c"].hash
6560101 == 6560101 -> true
["a", "b", "c", "de"].hash == ["b", "de", "a", "c"].hash
6560101 == 6560101 -> true
["a", "b", "c", "de"].hash == ["b", "de", "a", "c"].hash
6560101 == 6560101 -> true
["a", "b", "c", "de"].hash == ["a", "b", "c", "de"].hash
6560101 == 6560101 -> true
["a", "b", "c", "de"].hash == ["b", "de", "c", "a"].hash
6560101 == 6560101 -> true
["a", "b", "c", "de"].hash == ["c", "a", "de", "b"].hash
6560101 == 6560101 -> true
["a", "b", "c", "de"].hash == ["b", "a", "c", "de"].hash
6560101 == 6560101 -> true
All or most of these say false!
The hash function is stolen from String#hash, and I'm sure it
could be tweaked or even replaced with better one.
["a", "b"].hash == ["b", "a"].hash
6363201 == 6428799 -> false
["d", "e"].hash == ["e", "d"].hash
6560001 == 6625599 -> false
["d", "f"].hash == ["f", "d"].hash
6560002 == 6691198 -> false
["ab", "bc"].hash == ["bc", "ab"].hash
814223488 == 822484992 -> false
["a", "b", "c", "de"].hash == ["b", "de", "c", "a"].hash
1377712415 == 778349149 -> false
["a", "b", "c", "de"].hash == ["b", "c", "de", "a"].hash
1377712415 == 838799265 -> false
["a", "b", "c", "de"].hash == ["b", "a", "de", "c"].hash
1377712415 == 822276257 -> false
["a", "b", "c", "de"].hash == ["c", "a", "b", "de"].hash
1377712415 == 783076061 -> false
["a", "b", "c", "de"].hash == ["b", "c", "de", "a"].hash
1377712415 == 838799265 -> false
["a", "b", "c", "de"].hash == ["b", "a", "c", "de"].hash
1377712415 == 2554461 -> false
["a", "b", "c", "de"].hash == ["de", "c", "a", "b"].hash
1377712415 == 346459875 -> false
["a", "b", "c", "de"].hash == ["a", "c", "b", "de"].hash
1377712415 == 1385908321 -> false
["a", "b", "c", "de"].hash == ["b", "de", "a", "c"].hash
1377712415 == 778217953 -> false
["a", "b", "c", "de"].hash == ["a", "b", "de", "c"].hash
1377712415 == 49950563 -> false