J'ai ce code:flux Scala itérer et la gestion de la mémoire
val res = Stream // launch the real computation, which alternates E and M steps, updating the computation state
.iterate(initCompState)(Base.emIteration)
.take(nIteration)
.last
L'idée est de fournir un état initial initCompState
, une fonction qui génère un nouvel état de la précédente, exécutez pour nIterations
et obtenir la résultat final.
Je ne suis pas interessé par les états intermédiaires, et je voudrais qu'ils soient collectés dès qu'ils ne sont pas nécessaires. De ce que j'ai lu en ligne, Stream
conserve des valeurs lorsqu'elles sont définies récursivement, ce qui n'est pas le cas ici.
Mon implémentation est-elle correcte et les états intermédiaires entre les gares initCompState
et res
sont-ils collectés dès que l'état suivant dans le flux a été calculé?
utiliser plutôt 'Iterator' – cchantep