Diferencia entre revisiones de «Comando Zip»

De GeoGebra Manual
Saltar a: navegación, buscar
(Ajustado a versión oficial)
 
(No se muestran 30 ediciones intermedias de 3 usuarios)
Línea 1: Línea 1:
<noinclude>{{Manual Page|version=4.0}}</noinclude>{{command|list|Zip}}
+
<noinclude>{{Manual Page|version=5.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. La longitud de la lista resultante es la de mínima longitud de las de entrada.
+
:Crea la [[Listas|lista]] de los objetos que se obtienen al sustituir las variables de la expresión por los elementos de las correspondientes listas. Si coinciden el número de varieables y el número de listas, cada variable se toma de la lista que le sigue. Si hay una varianle más que listas, la última variable toma los valores 1, 2, 3, ..., ''k'' siendo ''k'' la longitud de la lista más corta. La longitud de la lista obtenida es igual a la menor de las longitudes de las listas consideradas.
{{Example|1= <div>
+
:{{example|1=Consideremos los puntos P, Q, R y S. <code>Zip(PuntoMedio(A, B), A, {P, Q}, B, {R, S})</code> devuelve la lista con los [[Comando PuntoMedio|puntos medios]] de los segmentos ''PR'' y ''QS''.}}
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>
+
:{{example|1=Consideremos la lista de polinomios ''lista1={x^2, x^3, x^6}''. <code>Zip(Grado(a), a, lista1)</code> da por resultado la lista ''{2, 3, 6}''.}}
;
+
:{{example|1=Consideremos la lista de números ''lista1={1,2,5}''. <code>Zip(Simplifica(a*x^(b-1), a, lista1,b)</code> da por resultado la lista ''{1, 2x, 5x²}''.}}
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>
+
:{{example|1=Pueden utilizarse funciones como variables: <code>Zip(f(2), f, {x+1,x+3})</code> da por resultado la lista ''{3, 5}''.}}
}}
+
 
{{warning|1=Los elementos de cada lista deben ser del mismo tipo.}}
+
{{Note|Los elementos de cada lista deben ser del mismo tipo.}}
{{Note|1=Con este comando, se opera incluso basta con una única lista (que es, por otra parte, el empleo más frecuente). Ofrece, así, 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>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>.)
 
}}
 
{{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 actual del 16:51 29 ene 2021


Zip( <Expresión>, <Variable1>, <Lista1>, <Variable2>, <Lista2>, ...)
Crea la lista de los objetos que se obtienen al sustituir las variables de la expresión por los elementos de las correspondientes listas. Si coinciden el número de varieables y el número de listas, cada variable se toma de la lista que le sigue. Si hay una varianle más que listas, la última variable toma los valores 1, 2, 3, ..., k siendo k la longitud de la lista más corta. La longitud de la lista obtenida es igual a la menor de las longitudes de las listas consideradas.
Ejemplo: Consideremos los puntos P, Q, R y S. Zip(PuntoMedio(A, B), A, {P, Q}, B, {R, S}) devuelve la lista con los puntos medios de los segmentos PR y QS.
Ejemplo: Consideremos la lista de polinomios lista1={x^2, x^3, x^6}. Zip(Grado(a), a, lista1) da por resultado la lista {2, 3, 6}.
Ejemplo: Consideremos la lista de números lista1={1,2,5}. Zip(Simplifica(a*x^(b-1), a, lista1,b) da por resultado la lista {1, 2x, 5x²}.
Ejemplo: Pueden utilizarse funciones como variables: Zip(f(2), f, {x+1,x+3}) da por resultado la lista {3, 5}.
Nota: Los elementos de cada lista deben ser del mismo tipo.

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).

Note Aviso: Zip() es un constructo similar a lo que se suele denominar "map" en otros lenguajes de programación.
© 2024 International GeoGebra Institute