at:tutorial:appendix
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Next revisionBoth sides next revision | ||
at:tutorial:appendix [2008/07/10 14:07] – * tvcutsem | at:tutorial:appendix [2008/07/10 14:28] – Added tvcutsem | ||
---|---|---|---|
Line 95: | Line 95: | ||
The '' | The '' | ||
+ | |||
+ | ===== Basic Collections ===== | ||
+ | |||
+ | The modules ''/ | ||
+ | |||
+ | ==== Vector ==== | ||
+ | |||
+ | A vector is a dynamically resizable AmbientTalk table (aka array). Vectors may be created as follows: | ||
+ | |||
+ | < | ||
+ | import / | ||
+ | def v := Vector.new(10); | ||
+ | </ | ||
+ | |||
+ | The constructor optionally takes a comparator as a second argument. A comparator is a binary function returning a boolean whose job is to compare elements of the Vector. This comparator is used among others when sorting the vector. The Vector' | ||
+ | |||
+ | < | ||
+ | // returns the number of elements in the vector (not the capacity of the vector!) | ||
+ | length() | ||
+ | // returns whether the vector contains elements or not | ||
+ | isEmpty() | ||
+ | // is the vector at max. capacity? | ||
+ | atMaxCapacity() | ||
+ | // return idx'th element or raise an IndexOutOfBounds exception | ||
+ | at(idx) | ||
+ | // write idx'th element or raise IndexOutOfBounds exception | ||
+ | // | ||
+ | // iterate over the vector | ||
+ | each: iterator, returns nil | ||
+ | // map a unary function over the vector, returns a new vector | ||
+ | map: fun | ||
+ | // accumulate a function with a given starting value | ||
+ | inject: init into: accum; | ||
+ | // returns a new vector whose elements satisfy " | ||
+ | filter: cond; | ||
+ | // implode a vector of character strings into one text string | ||
+ | implode() | ||
+ | // join a vector of character strings together with the given string | ||
+ | join(txt) | ||
+ | // returns a range [start, | ||
+ | select(start, | ||
+ | // appends an element to the back of the vector | ||
+ | // returns the vector itself | ||
+ | add(element) | ||
+ | // alias for add(element) | ||
+ | def << | ||
+ | // insert an element at a given position, causing subsequent elements to shift one pos to the right. Returns this vector | ||
+ | insert(atPos, | ||
+ | // delete the element at the given position, shifts all following elements one pos to the left. Returns the value of the element at the deleted position. | ||
+ | delete(atPos) | ||
+ | // adds elements to the back of the vector | ||
+ | push(element) | ||
+ | // deletes elements from the back of the vector | ||
+ | pop() | ||
+ | // return the index of the first element matching the given filter (a unary predicate), or nil if none is found | ||
+ | find: filter | ||
+ | // remove the given element from the vector, return true if the element was actually found and deleted, false otherwise | ||
+ | remove(elt, cmp := defaultComparator) | ||
+ | // remove all objects for which filter(elt) returns true | ||
+ | removeAll: filter | ||
+ | // destructively appends otherVector to self. Returns this vector | ||
+ | addAll(otherVector) | ||
+ | // empties the vector | ||
+ | clear() | ||
+ | // Return a new vector whose elements form the set-union of all elements in self U otherVector | ||
+ | union(otherVector, | ||
+ | // Return a new vector whose elements form the set-intersection of all elements in self ^ otherVector | ||
+ | intersection(otherVector, | ||
+ | // Return a new vector whose elements form the set-difference of self \ otherVector | ||
+ | difference(otherVector, | ||
+ | // Quicksort the vector in-place. The comparator defines the ordering among elements. | ||
+ | sort(cmp := { |e1,e2| e1 < e2 }) | ||
+ | // Turn the vector into a set without duplicates in O(nlogn + n) | ||
+ | // The vector' | ||
+ | uniq(cmp := defaultComparator, | ||
+ | // return an element drawn randomly using a uniform distribution from the array or raise an EmptyVector exception. | ||
+ | random() | ||
+ | // return a table containing all elements of the vector | ||
+ | asTable() | ||
+ | </ | ||
+ | |||
+ | ==== List ==== |
at/tutorial/appendix.txt · Last modified: 2021/09/24 10:28 by elisag