# Place the array in a random order. Floyd's alg.
def shuffle(arr)
for n in 0...arr.size
targ = n + rand(arr.size - n)
arr[n], arr[targ] = arr[targ], arr[n] if n != targ
end
end
# Make strange declarations.
def pairs(a, b)
a << 'Insane'
shuffle(b)
b.each { |x| shuffle(a); a.each { |y| print y, " ", x, ".\n" } }
end
first = ['Strange', 'Fresh', 'Alarming']
pairs(first, ['lemonade', 'procedure', 'sounds', 'throughway'])
print "\n", first.join(" "), "\n"
Here's another use of methods.
Notice that when we send an array as a parameter,
changes in the function
do update the value to the caller.
One incidental thing we have not seen before is parallel
assignment in the shuffle
function which exchanges
two values.