Estoy liado con Haskell que me la dejé para verano en la carrera.
El ejercicio dice lo siguiente:
Consideremos la ecuación de segundo grado ax2 + bx + c = 0.
a) Define una función raíces que tome tres parámetros (correspondientes a los coeficientes a, b y c
de la ecuación) y devuelva una tupla con las dos soluciones reales de la ecuación (para calcular la
raíz cuadrada, usa la función predefinida sqrt). Recuerda que el discriminante se define como b2-
4ac y que la ecuación tiene raíces reales si el discriminante no es negativo.
Yo he hecho esto:
Código
raices :: Float-> Float-> Float-> (Float, Float) raices a b c | discriminante<0 = error "Raices no reales" | otherwise = ((-b + raiz)/denominador, (-b - raiz)/denominador) where discriminante = (b*b - 4*a*c) raiz = sqrt discriminante denominador = 2*a
Pero me tira el siguiente error:
Código
parse error on input `=' Perhaps you need a 'let' in a 'do' block? e.g. 'let x = 5' instead of 'x = 5' | 91 | raiz = sqrt discriminante | ^
La solución ya la tengo, pero quiero saber que error estoy cometiendo, ya que no es la primera vez que me aparece.
Gracias!