length(s) tells you the length of a sequence s. This is the number of elements in s. Some of these elements may be sequences that contain elements of their own, but length just gives you the "top-level" count. You will get an error if you ask for the length of an atom. e.g.
length({5,6,7}) -- 3 length({1, {5,5,5}, 2, 3}) -- 4 (not 6!) length({}) -- 0 length(5) -- error!repeat(item, count) makes a sequence that consists of an item repeated count times. e.g.
repeat(0, 100) -- {0,0,0,...,0} i.e. 100 zeros repeat("Hello", 3) -- {"Hello", "Hello", "Hello"} repeat(99,0) -- {}The item to be repeated can be any atom or sequence.
append(s, item) creates a new sequence by adding one item to the end of a sequence s.
prepend(s, item) creates a new sequence by adding one element to the beginning of a sequence s.
append({1,2,3}, 4) -- {1,2,3,4} prepend({1,2,3}, 4) -- {4,1,2,3} append({1,2,3}, {5,5,5}) -- {1,2,3,{5,5,5}} prepend({}, 9) -- {9} append({}, 9) -- {9}The length of the new sequence is always 1 greater than the length of the original sequence. The item to be added to the sequence can be any atom or sequence.
These two built-in functions, append() and prepend(), have some similarities to the concatenate operator, & , but there are clear differences. e.g.
-- appending a sequence is different append({1,2,3}, {5,5,5}) -- {1,2,3,{5,5,5}} -- length(3) + <any> ==> length(4) {1,2,3} & {5,5,5} -- {1,2,3,5,5,5} -- length(3) + length(3) ==> length(6) -- appending an atom is the same append({1,2,3}, 5) -- {1,2,3,5} {1,2,3} & 5 -- {1,2,3,5}Beginners often confuse s=append(s,x) with s&=x, so here are two simple rules to memorise:
- append always and only ever increases the length of s by 1.
- use & to construct strings, or to add a variable number of elements to a list or table in one operation.