# weird (strange) behavior of sequence-polyline combination

Angsüsser shared this question 8 months ago

I have a list of points (about 1000 points) named pf.

I needed the distance of each point from the first point. Somebody in the forum (I believe it was "rami") gave me the hint:

Sequence(0 + Polyline(First(pf,n)),n,1,Length(pf)) - it worked AND was fast!

By further analyzing I removed "0 +" in the command above - and now GG freeezes. (This does not happen if I decrease the size of the list to 100 but you can "feel" the delay )

My guess: Because of "0+" only the length of each "Polyline"-command find its way to memory - there were no objects "Polyline" constructed.

Can anybody explain this strange behavior? (is my guess correct?) 1 1

0+polyline() creates a sequence of numbers. It requires less memory that sequence of polylines that internally is a collection of points and segments 2

same as mathmagic but with others words

Sequence(0 + Polyline(First(pf,n)),n,1,Length(pf)) create a list of length of polyline and each element is the length of a polyline (1 value)

Sequence(Polyline(First(pf,n)),n,1,Length(pf)) create a list of polylines and each element has a lot of points

--------------------------------------------------------------------------------------------------

Quote:Can anybody explain this strange behavior?

no: it is also for me strange (I try first with Length() but this not works and I found "0+" as "workaround")

but often (not always) ggb give back a value of an object instead the object himself. The exact rule I do not know (for example Area for Polygon)

Quote: (is my guess correct?) Yes.

-----------------------

there you can find https://help.geogebra.org/t... 1

OK - thank you folks for your answers - especial "rami" (I hope I am not going on your nerves) but I wondered at your answer about "0+" at this command - seems to be useless here, but now I understand.

Thanks to all! 1

Only for them who visit this thread:

an alternative (but needs 2 command lines)

distances= Sequence(Distance(pf(n), pf(n - 1)), n, 2, Length(pf)) //distance of 2 neighbors

Join({0}, Sequence(Sum(distances, n), n, 1, Length(distances))) // sum up until n

drawback: longer 1

P.S.

last command can be simplified to

Sequence(Sum(distances, n), n, 0(!), Length(distances))

or you can do it recursive (idea from Michel Iroir)

x(IterationList( (x(A)+distances(y(A)+1),y(A)+1) , A, {(0,0)} , Length(distances))) 