考虑:
data Expr a
= V a
| Lit Integer
| Let (Expr a) (Expr (Maybe a))
deriving (Eq,Show)
构造Let
函数使我能够绑定一个表达式(第一个 arg),以便在第二个(V Nothing
引用它)中引用它。
如果我做类似的事情
Let (Lit 3) $ Let (Lit 1) $ Var Nothing
指的是哪个Lit
?Var Nothing
此外,我想一次将其推广到多个绑定,但我不知道该怎么做。我遵循了优秀的 Edward Kmett绑定包中的一些示例,但现在我既困惑又迷茫。