> I think it would make sense that "tail" and "last" and # and ... are
> only implemented if % has finiteAggregate.

> I don't understand what finiteAggregate actually means.
> Is it meant to mean finite in the sense of finitely many stored objects
> or finite as a mathematical structure.

I am not 100 percent sure, but finiteAggregate can have cycles
and non-finiteAggregate are basicly for Stream and Set?
If an aggregate is not finiteAggregate, then many operations are
not available. So tail, last and # are under finiteAggregate,
but they should also give error in cyclic cases.
(# in UnaryRecursiveAggregate detects cycle and gives error,
but in List it's not for speed issues.)

> Since I didn't have need, I don't even know how to (officially) create a
> List that has a cycle.

x := [1,2]
setrest!(rest x,x)

> A list that repeats 1,2,1,2,... is not finite for my taste even if it
> can be stored a list with one cycle, so it should not be a List(X).

List is of category ListAggregate which has FiniteLinearAggregate.

A cycle list is finite, while [f x for x in 1..] is not.

finiteAggregate is pretty much everywhere in aggcat.spad,
I wonder if there's a better way.

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to