我正在努力完成我们给予的任务.我在这里稍微基于不同的指南编写了这段代码:不在范围内:数据构造函数
我遇到的问题是这里的管道:
| x == "+" = (Sum y y',xs'') where
Run Code Online (Sandbox Code Playgroud)
问题似乎与3个管道或管道跟在"哪里"有关.如果我交换最后2个管道.把
x == "+" = (Sum y y' (...))
Run Code Online (Sandbox Code Playgroud)
之前
x == "*" = (Prod y y' (...))
Run Code Online (Sandbox Code Playgroud)
导致错误移动到该代码.如果我注释掉这两个代码段中的任何一个,一切正常,但是我需要它们来完成我们给出的赋值.
快速摘要:
| x == "*" = (Prod y y',xs'') where
(y,xs') = ast xs
(y',xs'') = ast xs'
Run Code Online (Sandbox Code Playgroud)
和
| x == "+" = (Sum y y',xs'') where
(y,xs') = ast xs
(y',xs'') = ast xs'
Run Code Online (Sandbox Code Playgroud)
两者都单独工作,但当我把它们放在一起时,我的程序无法编译.
完整代码:
import Data.Char
data AST = Leaf Int
| Sum AST AST …Run Code Online (Sandbox Code Playgroud)