Duda ejercicio autoevaluación Definiciones

Duda ejercicio autoevaluación Definiciones

de Ana Laura Rodriguez Colesnik -
Número de respuestas: 1

Buenas, no logro entender como llegar al resultado de este ejercicio.

Lo que intenté fue desarrollar el foldr como x1 ' f ' (x2 ' f ' (.. (xn ' f ' e)..) pero no llego a poder evaluar. No me doy cuenta si es que estoy considerando mal los parámetros en el foldr, o si es algo más. Para mi los parámetros de foldr son:
f = (.) , e = id (map filter ps) y queda esperando a xs que en el ejercicio es [1,2,3,4]

kV3X3QuzBcJbTuhylNYs-o4KKhi3Qbmk5EbrRJ9TKAQyx6td6jiwWddnQPuNqwu3n7_RGBU-8BmbwGnccIP4pqexfOqf7XcH4SlVjUPipaz3DslwzYfclrU1GLOeHBs5N0GBuBPJ

En respuesta a Ana Laura Rodriguez Colesnik

Re: Duda ejercicio autoevaluación Definiciones

de Germán Ferrari -

De la expresión `foldr (.) id (map filter ps)` ya podés sacar que:

  • `f = (.)`
  • `e = id`
  • `(map filter ps)` es la lista que se pasa como entrada al `foldr`.
Una dificultad de este ejercicio es hacerse una idea de qué lista es `map filter ps`.
Podemos ayudarnos con los tipos de `map` y `filter`:
  • `map :: (a -> b) -> [a] -> [b]`
  • `filter :: (a -> Bool) -> [a] -> [a]`
¿Cuál es el tipo de `map filter`? Notar que se está usando `filter` como la función que se pasa como primer argumento de `map`.
Con eso podés inferir que tipo tiene que tener `ps`. Y con eso podés deducir el tipo de `raro`.

¿Qué tipo tiene `raro ps`?