[Ayuda] Por que no anda esta función en Haskell

Iniciado por PabloPbl, 12 Marzo 2018, 17:29 PM

0 Miembros y 1 Visitante están viendo este tema.

PabloPbl

Hola buenos llevo rato haciendo un ejercicio de Haskell que no puedo lograr hacerlo.
En si el ejercicio creo que esta perfecto, pero Haskell no me lo toma y me da error.

Esto es lo que llevo:
Código (java) [Seleccionar]

pesoLiviano altura = max(0, (altura*100)-300)
pesoPesado altura = min(300, altura*100)

pesoPino altura  = (pesoPesado altura + pesoLiviano altura) * 3

esPesoUtil peso = peso >= 400 && peso <= 1000

sirvePino  = esPesoUtil.pesoPino


La lógica del codigo se que esta bien, en otros lenguajes lo hice bien, pero acá parece un error de sintaxis o algo asi:

pesoPino altura  = (pesoPesado altura + pesoLiviano altura) * 3

El error creo que esta cuando llamo al mismo parametro dentro de la funcion 2 veces, nose si sea eso:



Y este es el erro que me da:


Non type-variable argument
      in the constraint: Num ((t, t) -> (t, t))
    (Use FlexibleContexts to permit this)
    When checking that 'pesoPino' has the inferred type
      pesoPino :: forall t t1.
                  (Num t, Num t1, Num ((t, t1) -> (t, t1)), Ord t, Ord t1) =>
                  t1 -> (t, t1) -> (t, t1)

srWhiteSkull

Prueba usar al comienzo del código :
{-# LANGUAGE FlexibleContexts #-}

No entiendo de Haakell, nunca lo he usado, pero el mensaje podría interpretarse como que haces operaciones con tipos distintos.