
Am Sonntag 14 Februar 2010 20:54:54 schrieb John Moore:
Hi all, I must be doing something wrong with my tabs. Because this keeps telling me parse error. Can some one see if it is indentation. I'm sending a file so as you'll be able to see what going on. If I copy it here it can appear wrong the difference is with the Var expression.
John
First of all, *don't mix tabs and spaces for indentation* (best, don't use tabs at all). It's evalStep d (Var x) = case x of (Val a) ->case x of (Val b) ->(lookup x d) if (isJust m_e)then evalStep(lookup x d) else fail "Error in expression -- no definition for variable!" The "if ... " is aligned with (Val b), so GHC tries to parse it as a pattern. But if-expressions aren't patterns, so you get a parse error. But the code doesn't really make sense (and isn't well typed) anyway. You probably want something like evalStep d (Var x) = case lookup x d of Just e -> e Nothing -> error "Error in expression -- no definition for variable!" for that.