Haskell parsing prefix evaluation
问题 I'm struggling with this code. import Data.Char (isDigit) data Ast = V Int | Neg Ast | A Ast Ast | M Ast Ast deriving (Show,Eq) parseE ("+":xs) = let (e1,r1) = parseE xs; (e2,r2) = parseE r1 in (A e1 e2, r2) parseE ("*":xs) = let (e1,r1) = parseE xs; (e2,r2) = parseE r1 in (M e1 e2, r2) parseE ("-":xs) = let (a,r) = parseE r in (N a, r) parseE ("(":xs) = let (a,")":r) = parseE r in (a,r) parseE (x:xs) = (V (read x :: Int), xs) eval xs = parseE xs When my input is something like: * + 1 2 * 3 +