list provides an abstract type for a sequence of elements of the same type.
A list sequence may be empty and contain no element, or it may have a fixed or even an infinite number of elements.
The core of the implementation of an actual list lies in the implementation of the actual Cons cell a non-empty list consists of.
Lists can typically be traversed using only immutable data. This makes them more flexible than streams that require to store and update their state.
A list is immutable, so it can be reused and shared between threads. Due to the nature of lists, in which many Cons cells are used, a list may require more (heap) allocation than an array.
list provides an abstract type for a sequence of elements of the same type.
A list sequence may be empty and contain no element, or it may have a fixed
or even an infinite number of elements.
The core of the implementation of an actual list lies in the implementation
of the actual Cons cell a non-empty list consists of.
Lists can typically be traversed using only immutable data. This makes them
more flexible than streams that require to store and update their state.
A list is immutable, so it can be reused and shared between threads.
Due to the nature of lists, in which many Cons cells are used, a list
may require more (heap) allocation than an array.