Diferencia entre revisiones de «Comando Zip»
De GeoGebra Manual
Línea 1: | Línea 1: | ||
<noinclude>{{Manual Page|version=4.0}}</noinclude>{{command|list|Zip}} | <noinclude>{{Manual Page|version=4.0}}</noinclude>{{command|list|Zip}} | ||
;Zip[ <Expresión>, <Variable1>, <Lista1>, <Variable2>, <Lista2>, ...] | ;Zip[ <Expresión>, <Variable1>, <Lista1>, <Variable2>, <Lista2>, ...] | ||
− | :Crea la [[Listas|lista]] de objetos obtenidos al sustituir, en la expresión, las variables por elementos de las correspondientes listas. | + | :Crea la [[Listas|lista]] de objetos obtenidos al sustituir, en la expresión, las variables por elementos de las correspondientes listas. La longitud de la lista resultante es la de mínima longitud de las de entrada. |
− | + | {{Example|1= <div> | |
− | {{ | + | Dados los puntos '''Q''', '''R''', '''S''', '''T''' y '''U'''...'''<code>Zip[PuntoMedio[P_A, P_B], P_A, {Q, R}, P_B, {S, T, U}]</code>''', da por resultado '''<code>lista_1 = {(0,4 , 4), (2, 3.4)}</code>''' que es la lista conteniendo los [[Comando PuntoMedio|puntos medios]] entre '''Q''' y '''S'''' (primero con primero) y entre '''R''' y '''T''' (segundo con segundo)<div> |
− | + | ; | |
− | + | Siendo <code>''lis1={x^2, x^3, x^6}''</code> una lista de polinomios. <code>Zip[Grado[a], a, lis1]</code> da por resultado, la lista ''{2, 3, 6}''.</div></div> | |
− | {{ | + | }} |
− | + | {{warning|1=Los elementos de cada lista deben ser del mismo tipo. | |
− | Incluso basta con una única lista (que es, por otra parte, el empleo más frecuente). Es una alternativa más sintética que [[Comando Secuencia|Secuencia]] cuando lo único que se requiere es recorrer una lista. | + | Incluso basta con una única lista (que es, por otra parte, el empleo más frecuente). Es una alternativa más sintética que [[Comando Secuencia|Secuencia]] cuando lo único que se requiere es recorrer una lista. }} |
− | {{ | + | {{Example|1= Así... |
* '''<code>Zip[a^2, a, listaDeNúmeros]</code>''' es mucho más breve que | * '''<code>Zip[a^2, a, listaDeNúmeros]</code>''' es mucho más breve que | ||
− | * '''<code>Secuencia[Elemento[listaDeNúmeros, a]^2, a, 1, Longitud[listaDeNúmeros]]</code>''' | + | * '''<code>Secuencia[Elemento[listaDeNúmeros, a]^2, a, 1, Longitud[listaDeNúmeros]]</code>''' (aunque en este caso es aún más sencillo simplemente <code>listaDeNúmeros^2</code>.) |
− | (aunque en este caso es aún más sencillo simplemente <code>listaDeNúmeros^2</code>.)}} | + | }} |
− | |||
{{Note|Este comando, en definitiva, es similar a una construcción que en otros lenguajes de programación se conoce como ''"mapa"'' (''for each...'' o ''map'').}} | {{Note|Este comando, en definitiva, es similar a una construcción que en otros lenguajes de programación se conoce como ''"mapa"'' (''for each...'' o ''map'').}} |
Revisión del 16:38 10 jul 2012
- Zip[ <Expresión>, <Variable1>, <Lista1>, <Variable2>, <Lista2>, ...]
- Crea la lista de objetos obtenidos al sustituir, en la expresión, las variables por elementos de las correspondientes listas. La longitud de la lista resultante es la de mínima longitud de las de entrada.
Ejemplo:
Dados los puntos Q, R, S, T y U...
Zip[PuntoMedio[P_A, P_B], P_A, {Q, R}, P_B, {S, T, U}]
, da por resultado lista_1 = {(0,4 , 4), (2, 3.4)}
que es la lista conteniendo los puntos medios entre Q y S' (primero con primero) y entre R y T (segundo con segundo)lis1={x^2, x^3, x^6}
una lista de polinomios. Zip[Grado[a], a, lis1]
da por resultado, la lista {2, 3, 6}.Alerta: | Los elementos de cada lista deben ser del mismo tipo. Incluso basta con una única lista (que es, por otra parte, el empleo más frecuente). Es una alternativa más sintética que Secuencia cuando lo único que se requiere es recorrer una lista. |
Ejemplo: Así...
Zip[a^2, a, listaDeNúmeros]
es mucho más breve queSecuencia[Elemento[listaDeNúmeros, a]^2, a, 1, Longitud[listaDeNúmeros]]
(aunque en este caso es aún más sencillo simplementelistaDeNúmeros^2
.)
Nota: Este comando, en definitiva, es similar a una construcción que en otros lenguajes de programación se conoce como "mapa" (for each... o map).
Comentarios
Es suficiente usar una sola lista con Zip(). Es una alternativa más corta que el comando Secuencia() cuando se desea recorrer una lista. Por ejemplo, Zip(a^2, a, listaDeNúmeros)
es más corto que Secuencia(Elemento(listaDeNúmeros, a)^2, a, 1, Longitud(listaDeNúmeros))
(más allá de que, en este caso particular, es aún más facil ingresar listaDeNúmeros^2
).
Aviso: Zip() es un constructo similar a lo que se suele denominar "map" en otros lenguajes de programación.