大致上,我有
我希望您能够成功地进行“检查”,并提取生成的“Expr”以进一步操作。基本上,
如果
check : UExpr -> Maybe Expr
And I have a test term
testTerm : UExpr
我希望您能够成功地进行“检查”,并提取生成的“Expr”以进一步操作。基本上,
realTerm : Expr
just realTerm = check testTerm
如果
check testTerm
结果为 nothing
,那么这个定义不能通过类型检查。这种情况可能发生吗?
IO
单子并在Haskell中无处不写命令式代码的人:通常情况下,无法从类型为Maybe
的表达式中提取出底层类型;这是强大功能性编程语言(如Agda)的精髓,所以你必须一直传递单子,直到找到一种有效的方法将其编码成另一种类型的值。 - 盛安安