final object CollectionStrawMan4

A strawman architecture for new collections. It contains some example collection classes and methods with the intent to expose some key issues. It would be good to compare this to other implementations of the same functionality, to get an idea of the strengths and weaknesses of different collection architectures.

For a test file, see tests/run/CollectionTests.scala.

Strawman4 is like strawman1, but built over views instead of by-name iterators

Constructors

Members

[+] class ArrayBuffer

Concrete collection type: ArrayBuffer

Concrete collection type: ArrayBuffer

[+] final object ArrayBuffer
[+] class ArrayBufferView
[+] trait Builder

Base trait for collection builders

Base trait for collection builders

[+] case class Cons
[+] final object Cons
[+] trait FromIterable

Base trait for instances that can construct a collection from an iterable

Base trait for instances that can construct a collection from an iterable

[+] trait Iterable

Base trait for generic collections

Base trait for generic collections

[+] trait IterableFactory

Base trait for companion objects of collections

Base trait for companion objects of collections

[+] final class IterableMonoTransforms

Implementation of MonoTransforms for all generic collections

Implementation of MonoTransforms for all generic collections

[+] final object IterableMonoTransforms

Implementation of MonoTransforms for all generic collections

Implementation of MonoTransforms for all generic collections

[+] trait IterableOnce

Iterator can be used only once

Iterator can be used only once

[+] final class IterableOps

Implementation of Ops for all generic collections

Implementation of Ops for all generic collections

[+] final object IterableOps

Implementation of Ops for all generic collections

Implementation of Ops for all generic collections

[+] final class IterablePolyTransforms

Implementation of PolyTransforms for all generic collections

Implementation of PolyTransforms for all generic collections

[+] final object IterablePolyTransforms

Implementation of PolyTransforms for all generic collections

Implementation of PolyTransforms for all generic collections

[+] final object Iterator
[+] trait Iterator

A core Iterator class

A core Iterator class

[+] final object List
[+] sealed trait List

Concrete collection type: List

Concrete collection type: List

[+] class ListBuffer

Concrete collection type: ListBuffer

Concrete collection type: ListBuffer

[+] final object ListBuffer
[+] trait MonoTransforms

Transforms returning same collection type

Transforms returning same collection type

Transforms that only apply to Seq

Transforms that only apply to Seq

[+] final object Nil
[+] trait Ops

Operations returning types unrelated to current collection

Operations returning types unrelated to current collection

[+] trait PolyTransforms
[+] trait RandomAccessView

Iterator defined in terms of indexing a range

Iterator defined in terms of indexing a range

[+] trait Seq

Base trait for sequence collections

Base trait for sequence collections

[+] final class SeqMonoTransforms

Implementation of MonoTransformsForSeqs for all generic collections

Implementation of MonoTransformsForSeqs for all generic collections

[+] final object SeqMonoTransforms

Implementation of MonoTransformsForSeqs for all generic collections

Implementation of MonoTransformsForSeqs for all generic collections

[+] final class StringMonoTransforms
[+] final object StringMonoTransforms
[+] final class StringOps

Concrete collection type: String

Concrete collection type: String

[+] final object StringOps

Concrete collection type: String

Concrete collection type: String

[+] final class StringPolyTransforms
[+] final object StringPolyTransforms
[+] case class StringView
[+] final object StringView
[+] final object View
[+] trait View

A lazy iterable

A lazy iterable

[+] implicit def IterableMonoTransforms ( c: Iterable [ A ] & FromIterable [ C ] ) : IterableMonoTransforms [ A, C ]

Implementation of MonoTransforms for all generic collections

Implementation of MonoTransforms for all generic collections

[+] implicit def IterableOps ( c: Iterable [ A ] ) : IterableOps [ A ]

Implementation of Ops for all generic collections

Implementation of Ops for all generic collections

[+] implicit def IterablePolyTransforms ( c: Iterable [ A ] & FromIterable [ C ] ) : IterablePolyTransforms [ A, C ]

Implementation of PolyTransforms for all generic collections

Implementation of PolyTransforms for all generic collections

[+] implicit def SeqMonoTransforms ( c: Seq [ A ] & FromIterable [ C ] ) : SeqMonoTransforms [ A, C ]

Implementation of MonoTransformsForSeqs for all generic collections

Implementation of MonoTransformsForSeqs for all generic collections

[+] implicit def StringMonoTransforms ( s: String ) : StringMonoTransforms
[+] implicit def StringOps ( s: String ) : StringOps

Concrete collection type: String

Concrete collection type: String

[+] implicit def StringPolyTransforms ( s: String ) : StringPolyTransforms