A list consists of a finite sequence of values.
The empty list is written as [].
The list expression [ E0 , … , En ] publishes the list [ v0 , … , vn ]
only if each expression Ei deflates to value vi.
Otherwise, it halts silently.
Notable list operations include:
Cons (construct) a list with first element h and remaining elements t: h:t
Publish true iff the list l has no elements: empty(l)
Publish the length of list l: length(l)
Publish the first element of list l: head(l)
Publish a list with every element in list l except the first: tail(l)
Publish all but the last element of list l: init(l)
Publish the last element of list l: last(l)
Publish the nth element of a list, counting from 0: index(l, n)
Publish a list with the first n elements of the list l: take(n, l)
Publish a list with all but the first n elements of the list l: drop(n, l)
Publish every value in list l, simultaneously: each(l)
Concatenate list a and list b: append(a, b)
Publish a list with the elements of list l in reverse order: reverse(l)
Publish a list containing only those elements of l which satisfy the function f: filter(f, l)
Apply unary function f to every element of list l (in parallel), and return a list of the results: map(f, l)
Apply a binary function to every element of a list: foldl, foldr, and many variations thereof.
Combine two lists into a list of pairs, and its reverse: zip and unzip
Concatenate a list of lists l into a single list: concat(l)
Publish true if item x is a member of list l: member(l)
The type of a list is List[U], where U is the join
of the types of each of its elements. In particular, if all of the elements
have the same type T, then the list will have type List[T].
Orc lists do not correspond to any Java value, so if a list is passed to Java code,
it will be as a java.lang.Object of a type not specified here.
[] -- empty list | [1, 2, 3] -- a list of integers | [(1, 2), (2, 3), (3, 4)] -- a list of tuples of integers | [1, 1 * 2, 1 * 2 * 3] -- a list of the first 3 factorials | [[1], [2, 2], [3, 3, 3]] -- a list of lists of integers {- OUTPUT:PERMUTABLE: [] [1, 2, 3] [(1, 2), (2, 3), (3, 4)] [1, 2, 6] [[1], [2, 2], [3, 3, 3]] -}
{- Lists do not behave like sets. The order and number of elements in a list do matter. -} [2,3] /= [3,2] | [2] /= [2,2] {- OUTPUT: true true -}
3:[] | 4:3:[2,1] {- OUTPUT:PERMUTABLE: [3] [4, 3, 2, 1] -}
Related Reference Topics
Related Tutorial Sections