[Pr2Ej1] "...en términos de unfoldr..."

[Pr2Ej1] "...en términos de unfoldr..."

de Marco Nicolas Rodriguez Alvariza -
Número de respuestas: 4

Hola, tengo algunas de dudas.

La primera es si lo que se pide es que cada función tenga la forma

takeWhileR p xs = unfoldr ... (para el caso Repr)

takeWhileS p xs = unfoldS ... (para el caso Stream)

...

donde unfoldr y unfoldS son las que están definidas en streamFusion.hs.

Por otro lado, en el caso de tails, tuve que concatenar la lista [ [ ] ] depués del unfoldr / unfoldS. No logro ver cómo hacerlo a nivel de la representación.

Lo último. Comparando las funciones con las dos representaciones, me quedaron esencialmente iguales. No veo cómo sacar ventaja del hecho que Stream te permite hacer "transiciones silenciosas del autómata" mediante Skip (de hecho, no utilicé Skip). Se me ocurre que podría utilizar Skip en la función evens, para omitir los elementos en posiciones impares, pero tendría que saber de alguna forma en qué posición estoy en cada momento.

Saludos

En respuesta a Marco Nicolas Rodriguez Alvariza

Re: [Pr2Ej1] "...en términos de unfoldr..."

de Marcos Viera - InCo -

1) En realidad basta con implementar las funciones de tres formas:

- en términos de unfoldr

- creando la Repr que tenga toda la información necesaria para hacer el unfoldR

- creando el Stream que tenga toda la información necesaria para hacer el unfoldR

2) Se puede hacer directamente en el unfold, si el autómata mantiene un "estado" que indique si se llegó al final.

3) De la misma forma en que en 2) dijimos que podés mantener un "estado" que indique si se llegó al final, en evens podés mantener algo que te indique si estás en una posición par o una impar.







En respuesta a Marcos Viera - InCo

Re: [Pr2Ej1] "...en términos de unfoldr..."

de Pablo Daniel Martinez Arevalo -

Para hacer la función tailsR no le encontré una solución modificando la "función next" como en los casos anteriores.

Veo que el camino más sencillo es cambiar la representación, es decir crear una funcion toRepTails que guarde la representación como más me conviene...y funciona...pero no sé si eso es lo que se pretende?

En respuesta a Pablo Daniel Martinez Arevalo

Re: [Pr2Ej1] "...en términos de unfoldr..."

de Marcos Viera - InCo -

Hola, no me queda muy claro que quieres decir con cambiar la representación. El tipo Repr no se puede cambiar, pero sí se puede utilizar un tipo "s" específico para esta función.

Por ejemplo, en este caso es importante controlar cuando se termina la lista, para insertar una lista vacía en la lista de listas.