我有一个任务,我无法弄清楚如何定义答案.
写功能 exp:: [String] -> (AST, [String])
AST:
x是数字,应该说Number x.Atom x.[AST].这样输出将是:
exp (token "(hi (4) 32)")
> (List [Atom "hi", List [Number 4], Number 32], [])
exp (token "(+ 3 42 654 2)")
> (List [Atom "+", Number 3, Number 42, Number 654, Number 2], [])
exp (token "(+ 21 444) junk")
> (List [Atom "+", Number 21, Number 444], ["junk"])
Run Code Online (Sandbox Code Playgroud)
我已经有了令牌功能,token :: …