What I needed to do was from a sequence of say, 0 to: 4, produce #(0 0)#(1 1)#(2 2)#(3 3)#(4 4)#(1 0)#(2 1)#(3 2)#(4 3)#(0 4)#(2 0)#(3 1)#(4 2)#(0 3)#(1 4)#(3 0)#(4 1)#(0 2)#(1 3)#(2 4)#(4 0)#(0 1)#(1 2)#(2 3)#(3 4). Basically, I wanted to generate all possible scores for a soccer match, hence the 1-1, 0-0, etc. On Tue, Jan 5, 2010 at 19:58, Randal L. Schwartz <merlyn@stonehenge.com>wrote:
"Levente" == Levente Uzonyi <leves@elte.hu> writes:
Levente> On Tue, 5 Jan 2010, John Toohey wrote:
But this doesn't get 1-1, 2-2 or 3-3. I had tried something like that use #reverse on each combination, but #combinations does not generate -duplicates- from the number sequences.
Levente> I guess you are looking for this: Levente> allPairsFromCollectionDo := [ :collection :block | Levente> | o | Levente> o := OrderedCollection newFrom: collection. Levente> o size timesRepeat: [ Levente> o with: collection do: block. Levente> o add: o removeFirst ] ].
Or more simply:
aCollection do: [:x | aCollection do: [:y | "use x and y"]].
Unless I'm misunderstanding the problem.
Which is neither combinations nor permutations, but so far is the only thing that fits all the bizarre conditions.
-- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/> Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc. See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- -JT