Ejercicio 3 [Parcial 2013]

Ejercicio 3 [Parcial 2013]

de Agustina Arismendi Campo -
Número de respuestas: 3

Hola, no entiendo por que la salida de computar: 

(/:/) f g x = (fx) (gx)

xnull f [] = []

xnull f xs = f xs

pp1 = zip (/:/) xnull tail

toma como entrada una única lista y saca la lista de pares : [(x1, x2) ,  (x2, x3) , (x3, x4) ...]


Como debería de computar esto?

Gracias, Saludos

En respuesta a Agustina Arismendi Campo

Re: Ejercicio 3 [Parcial 2013]

de Ezequiel Humberto Velazquez Manzor -

Me adhiero a la consulta de la compañera, (adjunto abajo el código textual luego de haberlo compilado y ejecutado)

al hacer pp1 [1,2,3] con este código se obtiene [(1,2),(2,3)]

Saludos!


(/:/) f g x = (f x) (g x)

xnull f [] = []
xnull f xs = f xs

pp1 = zip /:/ xnull tail
En respuesta a Ezequiel Humberto Velazquez Manzor

Re: Ejercicio 3 [Parcial 2013]

de Marcos Viera - InCo -

Ahora sí tiene sentido, sin los paréntesis alrededor del /:/. Recuerden que la aplicación tiene mayor precedencia que los operadores infijos, entonces si ponemos paréntesis en pp1 quedaría:

pp1 = zip /:/ (xnull tail)

lo que equivale a:

pp1 xs = (zip xs)  (xnull tail xs)

que equivale a:

pp1 xs = zip xs  (xnull tail xs)