2011-10-06 11 views

Respuesta

20

Existen al menos tres bibliotecas iteratee:

  • empadronador
  • iteratee
  • iterIO

Creo que el biblioteca empadronador es la preferida en la actualidad, debido a su sencillez. También es el que uso para mis proyectos, si te importa. Los otros dos paquetes son más flexibles y pueden ser más rápidos a veces, pero también son más complicados. Si desea aprender repeticiones, le sugiero comenzar por enumerador. Es la implementación más directa de la idea original de Oleg.

Si tiene un caso de uso particular y necesita muchas características con el enfoque iteratee estándar, puede considerar usar el paquete iteratee. En escenarios más complicados, también puede probar el paquete iterIO, que tiene un concepto ligeramente diferente y más flexible. En particular, las iteraciones pueden comunicarse con el enumerador, lo que no es posible en los otros dos paquetes.

Si los tres paquetes no son lo suficientemente flexibles, es probable que desee escribir sus coroutines usted mismo con el paquete monad-coroutine. Iteratos y enumeradores son un tipo especial de corutinas, que se pueden componer de cierta manera. El paquete monad-coroutine le proporciona el tipo general y le permite emplear su propio concepto de interacción.

+3

Una pequeña nit: iteratee' iteratees también se puede comunicar con el enumerador. Por ejemplo, así es como se implementa 'seek'. Sin embargo, no es tan sofisticado como el mecanismo 'iterIO'. –

+0

@ertes, qué ocurre con otras propiedades, como p. Ej. eficiencia/rendimiento? ¿Pueden combinarse las bibliotecas que no usan la misma biblioteca iteratee? – hvr

+0

Generalmente no, las bibliotecas no son compatibles entre sí. – ertes

Cuestiones relacionadas