Programación Funcional - Ayuda ejercicio haskell, por comprension

   
Vista:

Ayuda ejercicio haskell, por comprension

Publicado por uriel (2 intervenciones) el 16/12/2015 03:18:52
Encontre este ejercicio en un final de haskell
El ejercicio dice: Definir por comprension, la funcion maxDif que recibe una lista de enteros y regresa la mayor de las diferencias en valor absoluto entre dos elementos consecutivos de una lista. utilizar abs y maximum, en caso de crear una funcion auxiliar definirla con where

Ejemplo: maxDif [10,-10,1,4,20,-2] -> 22

Lo que hice yo fue esto

maxDif::[Int] -> Int

maxDif xs = maximum [x | y <- xs, n <- [1..(length xs)-1], x <- diferencia y n xs]
where diferencia y n xs = abs y - abs (xs !! n)
me tira error al asignar diferencia a x, entiendo que no esta bien, pero no se como hacerlo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda ejercicio haskell, por comprension

Publicado por José (4 intervenciones) el 27/01/2016 11:26:23
Aunque sea un poco tarde.

Saludos:

Creo que el error está en que tenemos un número, x, donde debe haber una lista.

Prueba con , where diferencia y n xs = [y - (xs !! n)], así hacemos la lista de x, bueno el abs se pone tambien.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda ejercicio haskell, por comprension

Publicado por uriel (2 intervenciones) el 27/01/2016 20:32:08
Muchas gracias por tomarte el tiempo se responder, se agradece, ahora mismo no lo tengo a mano, pero logre hacerlo funcionar, pero muy parecido a tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar