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