2011-03-24 9 views
42

Voy a través de la 'Se aprende Haskell' tutorial y estoy en esta parte:ghci -No en el alcance: 'mensaje

lucky :: (Integral a) => a -> String 

Cuando intento ejecutar esta línea me sale:

<interactive>:1:1: Not in scope: `lucky' 

¿Qué estoy haciendo mal?

+0

Posible duplicado de [comandos de multilínea en GHCi] (http://stackoverflow.com/questions/8443035/multi-line-commands-in-ghci) –

Respuesta

52

Este no es un código de función, es la firma de función que solo se puede guardar en un módulo junto con la definición de función y la carga en GHCi.

Esta firma significa que va a definir una función lucky que obtiene un Integer y devuelve un String.

Sin embargo, si está componiendo sus funciones utilizando GHCi como intérprete interactivo, puede dejar que Haskell infiera el tipo de su función, e. g .:

ghci> let lucky x = show (x + 1) 
ghci> :t lucky 
lucky :: (Num a) => a -> String 
+0

¿Hay alguna forma de añadir otra definición de ghci con coincidencia de patrones. Algo como 'let lucky 4 =" four "' –

Cuestiones relacionadas