Tema

Practica 2 Ej 5

5 respuestas 7303 visitas

Hola, quiero saber si la parte c de este ejercicio esta bien...

Dada una secuencia de enteros s formar otra con los mismos elementos, pero con los elementos impares primero y los pares despues. El orden relativo de los impares y de los pares entre si debe ser el mismo que tenian en s.

Lo que pense es:

$$aux\;pares(s:[Int]):[Int]=(x | x \leftarrow{s},x\;mod\;2==0)$$
$$aux\;impares(s:[Int]):[Int]=(y | y \leftarrow{s},y\;mod\;2==1)$$
$$conc(impares,pares:[Int]):[Int]$$

Avisen si es cualquier cosa...
Saludos!

Yo no encontre una forma de hacerlo puramente por listas por comprension, asi q hice lo q hiciste vos... Una cosa importante, lo q hiciste con conc ahi, es definir una funcion llamada "conc" (el encabezado solamente) , no estas usando el conc q nos dieron para usar... eso seria asi:

$$conc(impares(s),pares(s))$$

Y una cosa mucho mucho menso importante, los aux llevan ";" al final...

Cualquier duda decime =D

Gracias por la respuesta, ya se me aclararon las dudas 🙂

Me llevo un rato pensarlo pero creo que salio, solo usando listas por comprension:

$$[conc(x,y)|x\leftarrow{[[p|p\leftarrow{S},p\;mod\;2 == 1]]},y\leftarrow{[[q|q\leftarrow{S}, q\;mod\;2 == 0 ]]}]$$

Y para el punto d, aun que tengo mis serias dudas:

$$[S_{|S|-i}| i \leftarrow{(0..|S|]}]$$

otra forma algo mas sencilla para el c):

$$[x | y \leftarrow [1,2], x \leftarrow s, ((y == 1) \wedge (x mod 2 == 1)) \vee ((y==2) \wedge (x mod 2 == 0))]$$

el d) lo hice similar a gbytz =P

saludos!..

Interesantes los que pusieron, acá subo el mio:

$$\left [S_{i\mod\left | S \right |} |\ i \leftarrow \left [ 0 . . 2*\left | S \right | \right ), \left ( \left (i \geq \left | S \right | \right ) \Rightarrow S_{i\mod\left | S \right |}\mod 2 == 0 \right ) \wedge \left ( \left (i < \left | S \right | \right )\Rightarrow S_i\mod 2 == 1 \right ) \right ]$$