sealed abstract
class
ViewL[S[_], A] extends AnyRef
Instance Constructors
-
new
ViewL()
Abstract Value Members
-
abstract
def
fold[B](b: ⇒ B, f: (⇒ A, ⇒ S[A]) ⇒ B): B
Concrete Value Members
-
final
def
!=(arg0: AnyRef): Boolean
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: AnyRef): Boolean
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
def
head: A
-
def
headOption: Option[A]
-
final
def
isInstanceOf[T0]: Boolean
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
tail: S[A]
-
def
tailOption: Option[S[A]]
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Inherited from AnyRef
Inherited from Any
Finger Trees provide a base for implementations of various collection types, as described in "Finger trees: a simple general-purpose data structure", by Ralf Hinze and Ross Paterson.
Finger Trees have excellent (amortized) asymptotics:
Access to the first and last elements is O(1). Appending/prepending a single value is O(1). Concatenating two trees is (O lg min(l1, l2)) where l1 and l2 are their sizes. Random access to an element at n is O(lg min(n, l - n)), where l is the size of the tree. Constructing a tree with n copies of a value is O(lg n).