Node: Simple Sequence Functions, Next: , Previous: Sequences, Up: Sequences



Simple Sequence Functions

length sequence Function

lengthL sequence Function

length returns the length of the sequence sequence as an int. lengthL is the same but returns an Lpp Integer object as the length. For example

     length(0) => 0
     let list1 = list(L("one"), L("two"), L("three"));
     list(lengthL(list1)) => (3)
     length(list1) + 1  => 4
     length(nth(2, list1)) => 5
     

elt sequence n Function

elt returns element at index n of sequence sequence. It is an error if integer index n is outside the boundary of sequence. n can be either an int or Lpp Integer.

setElt sequence n value Function

setElt sequence n value gc Function

setElt sets the element at index n of sequence sequence to value value and value is returned. It is an error if integer index n is outside the boundary of sequence. n can be either an int or Lpp Integer. If an optional fourth argument gc is given and is a function of one argument it is applied to the element replaced. If argument gc is t then it defaults to the function gc. If gc is nil then nothing is applied. The optional fourth argument gc is ignored if sequence is a String.

subseq sequence start Function

subseq sequence start end Function

subseq returns a copy of the given sequence sequence from given start position index to the end of the sequence where 0 is the beginning of the sequence. If the optional argument end is given then that is used instead of the end of the sequence. The end position is not included in the returned sub-sequence. start and end can be either int or Lpp Integer objects. If end is an Lpp object and is received by subseq as nil then that is also interpreted as the end of the sequence. Some examples are

     subseq(L("abcdefg"), 3) => "defg"
     subseq(L("abcdefg"), 3, Nil) => "defg"
     subseq(L("abcdefg"), 3, 5) => "de"
     subseq(list(L(1), L(2), L(3)), 0, 1) => (1 2)
     

copySeq sequence Function

copySeq returns a copy of the sequence sequence. A fresh copy of the sequence is returned and it is guaranteed to be equalp to sequence but not eq to it. For example

     let string1 = L("Hello");
     let string2 = copySeq(string1);
     equal(string1, string2) => t
     eq(string1, string2) => nil
     

reverse sequence Function

nreverse sequence Function

reverse returns a copy of the sequence sequence with all of its elements reversed. nreverse does the same as reverse but a copy is not made and sequence is modified. For example

     let list1 = list(L(1), L(2), L(3), L(4));
     reverse(list1) => (4 3 2 1)
     list1 => (1 2 3 4)
     nreverse(list1) => (4 3 2 1)
     list1 => (4 3 2 1)
     let string1 = L("1234");
     reverse(string1) => "4321"
     string1 => "1234"
     nreverse(string1) => "4321"
     string1 => "4321"