Débil como en las referencias débiles. Básicamente, necesito una secuencia de números donde algunos de ellos pueden ser asignados cuando ya no los necesitan.¿Hay una estructura de datos como transmisión, pero débil?
Respuesta
scalaz.EphemeralStream es lo que quieres.
Las vistas le proporcionan una colección perezosa, donde cada valor se calcula según sea necesario.
Para propósitos de aprendizaje, ¿esta respuesta fue incorrecta? – Bradford
Sí. Ya tengo una colección floja (Stream), pero también necesito que sea débil. – Anonymous
Todo el punto de la pregunta ... ¡gotcha! Gracias. Dejaré mi respuesta aquí para que otros vean estos comentarios. ¿Puede alguien explicar por qué las opiniones no son débiles? – Bradford
Una cosa que podría hacer es crear un Iterable
en lugar de un Stream
. Su Iterable
necesita proporcionar un método iterator
, que devuelve un iterador con los métodos hasNext
y next
.
Cuando se recorre la Iterable
, hasNext
y next
serán llamados a generar los elementos a medida que se necesitan, pero no se almacenan en cualquier lugar (como un Stream
hace).
ejemplo simple:
class Numbers extends Iterable[Int] {
def iterator = new Iterator[Int] {
private var num = -1
def hasNext = num < 99
def next = { num += 1; num }
}
}
Eso no ayudaría mucho, porque necesito un flujo por dos razones: programación funcional (= no iteradores) y memorización (no son iterables). – Anonymous
@Anonymous - tenga en cuenta que 'Iterable' tiene la mayoría de los métodos de recolección de Scala (incluidos' foreach', 'map',' filter', 'foldLeft' etc.) para que pueda usarlo para la programación de func como cualquier otra colección y memoialización: Pensé que querías algo que * no * retenga los valores generados? – Jesper
Debería retenerlos, solo que no es permanente. Mira (creo) java.lang.ref.WeakReference. – Anonymous
- 1. cómo copiar una estructura de objetos (pero no los datos)
- 2. TcpClient.GetStream(). DataAvailable devuelve falso, pero la transmisión tiene más datos
- 3. ¿Hay una estructura de datos "Establecer" en .Net?
- 4. Lista de Javascript como estructura de datos?
- 5. ¿Hay una estructura de datos Queue/FIFO para el iPhone?
- 6. ¿Hay una estructura de datos persistente multimap bidireccional?
- 7. ¿Hay una estructura de datos como el conjunto de Java en JavaScript?
- 8. Python: cómo comprobar si aún hay disponible una referencia débil
- 9. ¿Se puede considerar una variable como 'int' como una estructura de datos primitiva/fundamental?
- 10. ¿Hay una estructura de datos que contiene conjuntos de datos en .NET?
- 11. ¿Cómo clasifico una estructura como un puntero a una estructura?
- 12. Transmisión de datos JPEG a TImage
- 13. Transmisión de datos con CoreBluetooth
- 14. ¿Hay alguna estructura de datos de gráfico implementada para C#
- 15. Transmisión de datos de audio en HTML5
- 16. -estructura de datos Hash-como dinámico en Fortran
- 17. ¿PHP tiene una estructura de datos establecida?
- 18. Cómo delta codificar una estructura C/C++ para la transmisión a través de sockets
- 19. ¿Hay una función de Matlab para convertir cualquier estructura de datos en una cadena?
- 20. ¿Hay una manera fácil de saber si una clase/estructura no tiene miembros de datos?
- 21. Java en memoria SQL Tabla como estructura de datos
- 22. ¿Hay una estructura HashTable en Wolfram Mathematica?
- 23. ¿Estructura de datos para almacenar una gran cantidad de datos?
- 24. Una estructura de datos 2D óptima
- 25. ¿Cómo mostrar la estructura de datos planos en una estructura de datos jerárquica (Java)?
- 26. Objeto débil en un NSDictionary?
- 27. Transmisión para obtener datos - NSInputStream
- 28. MySQL - Selección de datos de varias tablas, todas con la misma estructura pero datos diferentes
- 29. ¿Cómo devolver la imagen como una transmisión desde JAX-RS?
- 30. ¿Hay una estructura de datos que no permite duplicados y también mantiene el orden de entrada?
Usted debe estar contento de que no tiene una corriente débil (lo siento, no pudo resistir) –
http://stackoverflow.com/questions/4132924/functional-processing- of-scala-streams-without-outofmemory-errors –
@Sciss Disculpa, no pude encontrar nada cuando busqué ... bueno, eso pasa a veces, ¿verdad? – Anonymous