final class DList[A] extends AnyRef
Difference lists: a data structure for O(1)
append on lists.
Based on Data.DList
, a Haskell library by Don Stewart.
A difference list is a function that given a list, returns the original contents of the difference list prepended at the given list.
This structure supports O(1)
append and snoc operations on lists,
making it very useful for append-heavy uses, such as logging and
pretty printing.
- Source
- DList.scala
- Alphabetic
- By Inheritance
- DList
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def ++(as: => DList[A]): DList[A]
Append one list to another in constant time.
- def +:(a: A): DList[A]
Prepend a single element in constant time.
- def :+(a: A): DList[A]
Append a single element in constant time.
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply(xs: => IList[A]): Free.Trampoline[IList[A]]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def flatMap[B](f: (A) => DList[B]): DList[B]
Map over a difference list, then flatten.
- def foldr[B](z: => B)(f: (A, => B) => B): B
Fold over a difference list.
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def headOption: Option[A]
Get the first element of the list, if any.
- def isEmpty: Boolean
Tests whether list is empty.
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def map[B](f: (A) => B): DList[B]
Map over a difference list.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def tailOption: Option[DList[A]]
Get the tail of the list, if any.
- def toIList: IList[A]
Convert to an IList.
- def toList: List[A]
Convert to a normal list.
- def toString(): String
- Definition Classes
- AnyRef → Any
- def uncons[B](z: => B, f: (A, DList[A]) => B): B
List elimination of head and tail.
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def zip[B](bs: => DList[B]): DList[(A, B)]