List
Lists are collection objects that contain a sequence of values each associated with an integer index.
Create a list like this:
var list = [1, 2, 3]
Look up values using index notation:
list[0]
Indexing can also be done with slices: list[0..2] list[[0,1,3]]
You can change list entries like this:
list[0] = "Hello"
Create an empty list:
var list = []
Loop over elements of a list:
for (i in list) print i
Append
Adds an element to the end of a list:
var list = []
list.append("Foo")
Insert
Inserts an element into a list at a specified index:
var list = [1,2,3]
list.insert(1, "Foo")
print list // prints [ 1, Foo, 2, 3 ]
Pop
Remove the last element from a list, returning the element removed:
print list.pop()
If an integer argument is supplied, returns and removes that element:
var a = [1,2,3]
print a.pop(1) // prints '2'
print a // prints [ 1, 3 ]
Sort
Sorts the contents of a list into ascending order:
list.sort()
Note that this sorts the list "in place" (i.e. it modifies the order of the list on which it is invoked) and hence returns nil
.
You can provide your own function to use to compare values in the list
list.sort(fn (a, b) a-b)
This function should return a negative value if a<b
, a positive value if a>b
and 0
if a
and b
are equal.
Order
Returns a list of indices that would, if used in order, would sort a list. For example
var list = [2,3,1]
print list.order() // expect: [2,0,1]
would produce [2,0,1]
Remove
Remove any occurrences of a value from a list:
var list = [1,2,3]
list.remove(1)
ismember
Tests if a value is a member of a list:
var list = [1,2,3]
print list.ismember(1) // expect: true
Add
Join two lists together:
var l1 = [1,2,3], l2 = [4, 5, 6]
print l1+l2 // expect: [1,2,3,4,5,6]
Tuples
Generate all possible 2-tuples from a list:
var t = [ 1, 2, 3].tuples(2)
produces [ [ 1, 1 ], [ 1, 2 ], [ 1, 3 ] ... ]
.
Sets
Generate all possible sets of order 2 from a list.
var t = [ 1, 2, 3 ].sets(2)
produces [ [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ]
.
Note that sets include only distinct elements from the list (no element is repeated) and ordering is unimportant, hence only one of [ 1, 2 ]
and [ 2, 1 ]
is returned.