Go to the previous, next section.

Construction of Lists

procedure: list object ...

Returns a list of its arguments.

(list 'a (+ 3 4) 'c)                    =>  (a 7 c)
(list)                                  =>  ()

These expressions are equivalent:

(list obj1 obj2 ... objN)
(cons obj1 (cons obj2 ... (cons objN '()) ...))

procedure+: make-list k [element]

This procedure returns a newly allocated list of length k, whose elements are all element. If element is not supplied, it defaults to the empty list.

procedure+: cons* object object ...

cons* is similar to list, except that cons* conses together the last two arguments rather than consing the last argument with the empty list. If the last argument is not a list the result is an improper list. If the last argument is a list, the result is a list consisting of the initial arguments and all of the items in the final argument. If there is only one argument, the result is the argument.

(cons* 'a 'b 'c)                        =>  (a b . c)
(cons* 'a 'b '(c d))                    =>  (a b c d)
(cons* 'a)                              =>  a

These expressions are equivalent:

(cons* obj1 obj2 ... objN-1 objN)
(cons obj1 (cons obj2 ... (cons objN-1 objN) ...))

procedure+: list-copy list

Returns a newly allocated copy of list. This copies each of the pairs comprising list. This could have been defined by

(define (list-copy list)
  (if (null? list)
      '()
      (cons (car list)
            (list-copy (cdr list)))))

procedure: vector->list vector

procedure+: subvector->list vector start end

vector->list returns a newly allocated list of the elements of vector. subvector->list returns a newly allocated list of the elements of the given subvector. The inverse of vector->list is list->vector.

(vector->list '#(dah dah didah))        =>  (dah dah didah)

procedure: string->list string

procedure: substring->list string start end

string->list returns a newly allocated list of the character elements of string.
substring->list returns a newly allocated list of the character elements of the given substring. The inverse of string->list is list->string.

(string->list "abcd")                   =>  (#\a #\b #\c #\d)
(substring->list "abcdef" 1 3)          =>  (#\b #\c)

Go to the previous, next section.