Для списка есть filter : (a -> Bool) -> List a -> List a, но для потока нет filter : (a -> Bool) -> Stream a -> Stream a, почему?
Есть ли альтернативы для выполнения подобных заданий?
Ответ 1
Функции в Idris по умолчанию полны, и проверка целостности по праву отказывается принять фильтр на потоках, что является несколько каноническим примером непроизводительного определения для коиндуктивного типа: что бы вернуть filter isEven при применении к поток нечетных nats?