[Haskell-cafe] instance for (Show ([(String, Int)] -> Int))
Daniel Fischer
daniel.is.fischer at googlemail.com
Fri Dec 24 23:07:45 CET 2010
On Friday 24 December 2010 22:47:55, Aaron Gray wrote:
> On 24 December 2010 18:24, Henning Thielemann
> <lemming at henning-thielemann.de
>
> > wrote:
> >
> >
> > On Fri, 24 Dec 2010, Aaron Gray wrote:
> >
> > The compiler is requesting an instance declaration for Show :-
> >
> >> expr-eval.hs:334:23:
> >> No instance for (Show ([(String, Int)] -> Int))
> >> arising from a use of `print' at expr-eval.hs:334:23-27
> >> Possible fix:
> >> add an instance declaration for (Show ([(String, Int)] ->
> >> Int)) In the first argument of `(.)', namely `print'
> >> In the second argument of `(>>=)', namely `print . calc .
> >> lexer' In the expression: getContents >>= print . calc . lexer
> >
> > ... maybe 'calc' needs a further argument?
>
> I have attached what I have typed in so far.
Well,
*ExprEval> :t calc
calc :: [Token] -> [(String, Int)] -> Int
calc needs an environment (a dictionary of let-bound names), which you have
to provide.
main = print . flip calc [] . lexer
works fine.
>
> Aaron
More information about the Haskell-Cafe
mailing list