有一个Idris练习,任务是将堆栈计算器程序从只支持加法扩展到也支持减法和乘法。我试图通过泛化在堆栈上操作的函数来完成它。但是,我遇到了两个中心函数之间的类型错误: StackCmd () (S (S height)) (SIO序列中。Just Add => tryOp (doOp (+))
Just Subtract => tryOp (do
在下面的代码中,Idris报告了countSingleton_rhs非常复杂的类型(这是试图解决列表中“软件基础”一章中的一个练习)。该类型包括一个以以下为核心的复杂表达式:case decEq x x of ...。countSingleton_rhs
Idris为什么不将decEq x x简化为Yes Refl?是否有更好的方法来实现count来避免这种行为?为了取得进展,我可