[Haskell-beginners] 99problems: different response from ghci <--> runhaskell / ghc
looeegee at gmail.com
Fri Aug 17 10:53:19 CEST 2012
trying to solve the problem 6 "reverse a list"
I'm getting a different behaviour from ghci / runhaskell.
main = do
putStrLn $ concat (map show (myReverse [1,2,3]))
-- putStrLn $ concat (map show (myReverse ))
myReverse :: [a] -> [a]
myReverse  = 
myReverse (x:xs) = go  (x:xs)
where go :: [a] -> [a] -> [a]
go curr (x:xs) | null xs = [x] ++ curr
go curr (x:xs) = go ([x] ++ curr) xs
the second putStrLn (once uncommented) gives this error in the
Ambiguous type variable `a0' in the constraint:
(Show a0) arising from a use of `show'
Probable fix: add a type signature that fixes these type variable(s)
In the first argument of `map', namely `show'
_but_ if I load the same source into ghci I can successfully enter&run
[1 of 1] Compiling Main ( 05.hs, interpreted )
Ok, modules loaded: Main.
*Main> putStrLn $ concat (map show (myReverse ))
Then if I "help" the type inference changing the myReverse type declaration
myReverse :: [Int] -> [Int]
everything works well
So, my question is: _where_ is the difference between ghci / runhaskell?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners