Prueba 2018 - Ejercicio 10 d)

Prueba 2018 - Ejercicio 10 d)

de Maria Victoria Armand Ugon De Souza -
Número de respuestas: 3

Hola!

Tengo una consulta con respecto a este ejercicio. Llego a un resultado distinto que al de la solución:

Letra:


  1. Dadas las siguientes definiciones:

    a = map repeat b 

    b = 1 : map (+1) b 

    c = reverse a

    Para cada una de las siguientes expresiones indique el resultado de su evaluaci ́on o si la misma diverge.

    (d) ((take8. head)a)


    Mi razonamiento fue este:

    ((take 8 . head) a) =

    ((take 8 . head) map (repeat (1: map (+1) b))) =

    ((take 8 . head) (1: map (repeat (map (+1) b))) )=   // aplique definición de map
    ((take 8) . head (1: map (repeat (map (+1) b))) )=    // aplique definición de .

    (take 8 [1] )=               // aplique definición de head
     [1]            // aplique definición de take
O sea que según mi razonamiento el resultado me da [1]. 

Que estoy haciendo mal?

Gracias


En respuesta a Maria Victoria Armand Ugon De Souza

Re: Prueba 2018 - Ejercicio 10 d)

de Sebastian Guerrero Font -

((take 8 . head) a) =

((take 8 . head) map (repeat (1: map (+1) b))) =

((take 8 . head) (1: map (repeat (map (+1) b))) )= // aplique definición de map
((take 8) . head (1: map (repeat (map (+1) b))) )= // aplique definición de .

(take 8 [1] )= // aplique definición de head

tenes algun error en tu segunda y tercera linea me parece, asi lo tomaria yo:


((take 8 . head) a) =

((take 8 . head) map (repeat) b ) =

((take 8 . head) map (repeat) ((1: map (+1) b)) ) = 

((take 8 . head) (repeat 1): (map (repeat) ((map (+1) b))) ) = // aplique definición de map

((take 8) head (repeat 1): (map (repeat) ((map (+1) b))) ) = //aplique definición de .

((take 8) (repeat 1)) = //aplique definición de head

....  //aplico definicion de repeat y de head consecutivamente 8 veces

[1,1,1,1,1,1,1,1]