From: Gary Boone Date: 2006-12-07T16:25:43+09:00 Subject: [Puzzle] How to do parameter variation? Suppose you want to do several runs of a program or function, varying the parameters each time. You start with a hash of parameter lists: params = { speed=>[1,2,3], beta=>[0.1, 0.002, 0.4], x=>['a', 'b'] } Given this set, you'll call the test function 18 times: test_function( {speed=>1, beta=>0.1, x=>'a'} ) test_function( {speed=>1, beta=>0.1, x=>'b'} ) test_function( {speed=>1, beta=>0.002, x=>'a'} ) ... etc So the puzzle is how to take the original params list and generate a list of all the combinations of the parameters? The resulting parameter sets will be passed one at a time to the function as shown above. Notes: - I used hashes and lists to explain the problem. Maybe there's a better way. - You don't know how many parameters will be given. - The number of values for each parameter is unknown in advance. - The parameters have different types, as shown above. Each parameter's values are all the same type, though. -- Posted via http://www.ruby-forum.com/.