On 24 December 2010 22:07, Daniel Fischer <[email protected]>wrote:
> On Friday 24 December 2010 22:47:55, Aaron Gray wrote: > > On 24 December 2010 18:24, Henning Thielemann > > <[email protected] > > > > > 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. > Okay great, works this end too, but what does the 'flip' do ??? Now to get it to work as a REPL and to read from file :) Aaron
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
