Yes repeated entries are allowed. My example was rather misleading in that 
regard...

Finite length words in a possible infinite set/alphabet is what I was 
looking for. So that word class you just mentioned looks perfect. Thank you 
very much.

On Friday, April 22, 2016 at 10:08:05 PM UTC+10, Mike Zabrocki wrote:
>
> Oh, so you are allowing repeated entries?
>
> sage: Words([1,2])
> Words over {1, 2}
> sage: Words([1,2],length=2).list()
> [word: 11, word: 12, word: 21, word: 22]
>
>
>
> On Friday, 22 April 2016 07:30:05 UTC-4, Simon Wood wrote:
>>
>> Hi Mike and Travis,
>>
>> Thank you very much for your replies.
>>
>> Mike, your code snippet is unfortunately not what I am looking for. Sorry 
>> for being unclear. I'd like to construct the set of tuples of all lengths, 
>> not just tuples of length up to a certain bound.
>>
>> Travis, the FreeMonoid looks very promising. Word of arbitrary length in 
>> the set S should work just as well as tuples. I'll experiment with that a 
>> little and report back.
>>
>> Cheers,
>> Simon
>>
>> On Friday, April 22, 2016 at 12:46:53 PM UTC+10, Travis Scrimshaw wrote:
>>>
>>> Hey Simon,
>>>    You might want to use FreeMonoid(index_set=S) as your basis indexing 
>>> set. Although you will need 7.2.beta5 to do the iteration:
>>>
>>> sage: S = (1,2)
>>> sage: F = FreeMonoid(index_set=S)
>>> sage: it = iter(F)
>>> sage: [next(it) for _ in range(10)]
>>> [1, F[1], F[2], F[1]*F[2], F[2]^2, F[1]^2, F[2]*F[1], F[1]^2*F[2], F[2]^
>>> 2*F[1], F[1]^3]
>>> sage: [next(it).to_word_list() for _ in range(10)]
>>> [[], [1], [2], [1, 2], [2, 2], [1, 1], [2, 1], [1, 1, 2], [2, 2, 1], [1, 
>>> 1, 1]]
>>> sage: F([[1,4],[2,1],[1,1],[2,3]])
>>> F[1]^4*F[2]*F[1]*F[2]^3
>>>
>>> This works for any set S, but the iterator will only work for finite 
>>> sets S. However, perhaps there could be some additional functionality for 
>>> IndexedFreeMonoid that could be added to make it work with your use case.
>>>
>>> Best,
>>> Travis
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to