Descargo de responsabilidad: esto se preguntó recientemente en la lista de haskell-cafe. Mis disculpas a cualquiera que se haya molestado por el doble post.Componer enumerados en el enumerador
Todos los paquetes iteratee-implementación, que yo sepa (por ejemplo iteratee
, iterIO
y conduit
) definen una función de la composición enumeratee, excepto para el paquete enumerator
. Esto me parece como una limitación seria, y sin embargo, también parece relativamente sencillo de implementar:
import Data.Enumerator
import Data.Enumerator.Internal
(=$=) :: Monad m
=> Enumeratee a0 a1 m (Step a2 m b) -> Enumeratee a1 a2 m b
-> Enumeratee a0 a2 m b
(=$=) e01 e12 step = Iteratee $ do
step' <- runIteratee $ e12 step
runIteratee . joinI $ e01 step'
¿Hay alguna Gotcha aquí que me falta? ¿O alguna otra razón para enumerator
no definir enumeratee composition?
He enviado un correo electrónico al autor/mantenedor de [el paquete del enumerador] (http://hackage.haskell.org/package/enumerator), John Millikin, que lo relaciona con esta pregunta. –