lazy-sequences

Iterowalność i Sekwencja Kotlina wyglądają dokładnie tak samo. Dlaczego wymagane są dwa typy?

Oba te interfejsy definiują tylko jedną metodę public operator fun iterator(): Iterator<T> Dokumentacja mówi, że {[1] } ma być leniwy. Ale czy Iterable nie jest też leniwy (chyba że poparty Collection)?

Jak zaimplementowane są leniwe sekwencje w Clojure?

Lubię Clojure. Jedną z rzeczy, która mnie martwi w tym języku, jest to, że nie wiem, jak leniwe sekwencje są implementowane, ... W jakich scenariuszach leniwe sekwencje są nieefektywne? W jakich scenariuszach leniwe sekwencje są najbardziej efektywne?

Jak uniknąć zachowania Clojure dla leniwych seqów, które chcę zwarć?

Mam długą, leniwą sekwencję, którą chcę zredukować i leniwie przetestować. Jak tylko dwa elementy sekwencyjne nie są = (lub j ... n jest odpowiedzią. Dodałem małą funkcję w osobnej odpowiedzi, aby zrobić część problemu, dla tych, którzy są zainteresowani.