鉴于以下定义构成了Yorgey 教授课程中的S 表达式:
data Atom = N Integer | I Ident deriving Show
和
data SExpr = A Atom | Comb [SExpr]
衍生节目
以下的完整数据类型应该是什么(在 Haskell 中)?
(酒吧(富)3 5 874)
鉴于以下定义构成了Yorgey 教授课程中的S 表达式:
data Atom = N Integer | I Ident deriving Show
和
data SExpr = A Atom | Comb [SExpr]
衍生节目
以下的完整数据类型应该是什么(在 Haskell 中)?
(酒吧(富)3 5 874)
我相信它会像
Comb
[ A (I "bar")
, Comb
[ A (I "foo")
]
, A (N 3)
, A (N 5)
, A (N 874)
]
每当遇到左括号时,您都会开始一个新的Comb
表达式,while (foo)
is simple 也是如此。Comb [A (I "foo")]
foo
A (I "foo")
我假设 Ident 类型是一个字符串。
I "bar"
,作为一个 SExpr 是A (I "bar")
Comb [ A (I "foo") ]
N 3
和作为 SExpr 是A (N 3)
.
Comb [ A (I "bar")
, Comb [ A (I "foo") ]
, A (N 3)
, A (N 5)
, A (N 874)
]