为什么idris中没有Stream的过滤功能?

Why there is no filter function of Stream in idris?

List有filter : (a -> Bool) -> List a -> List a,Stream没有filter : (a -> Bool) -> Stream a -> Stream a,为什么?

是否有其他方法可以完成类似的工作?

Idris 中的函数默认是总和的,总和检查器会正确地拒绝接受流上的过滤器,这是一个关于余归类型的非生产性定义的有点典型的例子:filter isEven return 应用于奇数 nats 流时?

检查 Productive Coprogramming with Guarded Recursion,您会在其中找到完全相同的示例以及在余归类型上下文中对整体性的很好介绍。