Difference between revisions of "Zip Command"
From GeoGebra Manual
Line 2: | Line 2: | ||
{{command|list}} | {{command|list}} | ||
;Zip[<Expression>, <Var1>, <List1>, <Var2>, <List2>, ...] | ;Zip[<Expression>, <Var1>, <List1>, <Var2>, <List2>, ...] | ||
− | :Creates [[Lists|list]] of objects obtained by substitution of variables in the expression by elements of corresponding lists. Length of the resulting list is minimum of lengths of | + | :Creates [[Lists|list]] of objects obtained by substitution of variables in the expression by elements of corresponding lists. Length of the resulting list is minimum of lengths of input lists. |
{{example|1=Let P,Q,R,S,T be some points. <code>Zip[Midpoint[A,B],A,{P,Q},B,{R,S}]</code> returns a list containing [[Midpoint Command|midpoints]] of segments ''PR'' and ''QS''.}} | {{example|1=Let P,Q,R,S,T be some points. <code>Zip[Midpoint[A,B],A,{P,Q},B,{R,S}]</code> returns a list containing [[Midpoint Command|midpoints]] of segments ''PR'' and ''QS''.}} | ||
{{Note|In each list the elements must be of the same type.}} | {{Note|In each list the elements must be of the same type.}} |
Revision as of 13:24, 29 March 2012
- Zip[<Expression>, <Var1>, <List1>, <Var2>, <List2>, ...]
- Creates list of objects obtained by substitution of variables in the expression by elements of corresponding lists. Length of the resulting list is minimum of lengths of input lists.
Example: Let P,Q,R,S,T be some points.
Zip[Midpoint[A,B],A,{P,Q},B,{R,S}]
returns a list containing midpoints of segments PR and QS.
Note: In each list the elements must be of the same type.
Comments
It's actually enough to provide a single list to Zip(). This makes it a shorter alternative to Sequence() when all you want is to traverse a list. For example, Zip(a^2, a, listOfNumbers)
is much shorter than Sequence(Element(listOfNumbers, a)^2, a, 1, Length(listOfNumbers))
(albeit in this case it's easier to just do listOfNumbers^2
.)
Hint: Zip() is similar to a construct known as "map" in other programming languages.