[FIXED] Was ist der Unterschied zwischen List.view und LazyList?

Ausgabe

Ich bin neu bei Scala und habe gerade erfahren, dass LazyListerstellt wurde, um zu ersetzen Stream, und gleichzeitig haben sie die .viewMethoden zu allen Sammlungen hinzugefügt.

Ich frage mich also, warum die LazyListBibliothek der Scala-Sammlungen hinzugefügt wurde, wenn wir das tun können List.view?

Ich habe mir gerade den Scaladoc angesehen, und es scheint, dass der einzige Unterschied darin besteht, dass er Memos enthält LazyList, während Viewdies nicht der Fall ist. Hab ich recht oder nicht?

Lösung

StreamElemente werden bis auf das 1. (Kopf-) Element faul realisiert. Das wurde als Mangel empfunden.

Eine ListAnsicht wird faul neu bewertet, muss aber meines Wissens erst komplett realisiert werden.

def bang :Int = {print("BANG! ");1}

LazyList.fill(4)(bang)  //res0: LazyList[Int] = LazyList(<not computed>)
Stream.fill(3)(bang)    //BANG! res1: Stream[Int] = Stream(1, <not computed>)
List.fill(2)(bang).view //BANG! BANG! res2: SeqView[Int] = SeqView(<not computed>)


Beantwortet von –
jwvh


Antwort geprüft von –
David Goodson (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like