Dear Ralf, Ralf Hemmecke <[EMAIL PROTECTED]> writes:
> Hi Martin > > what do you gain by changing > > <<implementation: Compose: auxiliary functions>>= > local structures( > i: I, > pi: Array List L > ): Generator SetSpecies G L == generate { > i = #pi => empty $ SetSpecies(G L); > s: SetSpecies L := set pi.i; > for g in structures(s) $ G(L) repeat { > for e in structures(next i, pi) repeat yield cons(g, e); > } > } > @ > > into > > <<implementation: Compose: auxiliary functions>>= > local structures( > i: I, > pi: Array List L > ): Generator SetSpecies G L == generate { > i = #pi => empty $ SetSpecies(G L); > s: SetSpecies L := set pi.i; > for g in structures(s) $ G(L) repeat { > if next i = #pi > then yield cons(g, empty $ SetSpecies(G L))$SetSpecies(G L) > else for e in structures(next i, pi) repeat yield cons(g, e); > } > } > @ > > ??? both definitions are wrong. The second just handles more cases then the first. The correct definition is local structures( i: I, pi: Array List L ): Generator SetSpecies G L == generate { i = #pi => yield empty $ SetSpecies(G L); s: SetSpecies L := set pi.i; for g in structures(s) $ G(L) repeat { for e in structures(next i, pi) repeat yield cons(g, e); } } @ The yield was missing. I have this in my working copy, if you want, I can check this fix, along with some others, tomorrow. Martin ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Aldor-combinat-devel mailing list Aldor-combinat-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/aldor-combinat-devel