I have a question about the code of recursively enumerated sets inside sets/recursively_enumerated_sets.pyx.
Such recursive structures contain the extra information about a path from the seeds to a given node (which is indeed a shortest path for breadth first search). Since the successor function is an iterable, one can keep track of which next a yields a given element. Example: sage: succ = lambda a:[a+2,a+3] sage: C = RecursivelyEnumeratedSet([0], succ) sage: C A recursively enumerated set (breadth first search) sage: it = C.breadth_first_search_iterator() sage: [next(it) for _ in range(10)] [0, 2, 3, 4, 5, 6, 8, 9, 7, 10] But one could also keep track of how one of these ints is obtained: sage: it = C.breadth_first_search_iterator() sage: [next(it) for _ in range(10)] [ (0, []), (2, [0]), (3, [1]), (4, [0,0]), (5, [2,3]), (6, [3,3]), (8, [2,3,3]), (9, [3,3,3]), (7, [3,2,2], (10, [3,3,2,2])] Actually, one problem is already apparent there: the order does depend on the iterator through a set (and so would the word if succ returns a set), so I don't think this is stable among different machines. But if succ returns a determined iterator (contrary to a pseudo-random iterator), the word makes prefect sense. Reason for me to want that: I want to use this iterator for reflection groups generated by simple reflections, and I want to keep track of the used reduced word of the elements. Do you think that's reasonable? Do you see a problem with this implementation speedwise? Thanks, Christian -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.