On this page:
first
second
third
fourth
fifth
sixth
seventh
eighth
rest
last-pair
merge-sorted-lists
mergesort
quicksort

 (require mzlib/list)

The mzlib/list library re-exports several functions from scheme/base and scheme/list:

  cons?
  empty?
  empty
  foldl
  foldr
  remv
  remq
  remove
  remv*
  remq*
  remove*
  findf
  memf
  assf
  filter
  sort

(first v)  any/c
  v : pair?
(second v)  any/c
  v : (and/c pair? ....)
(third v)  any/c
  v : (and/c pair? ....)
(fourth v)  any/c
  v : (and/c pair? ....)
(fifth v)  any/c
  v : (and/c pair? ....)
(sixth v)  any/c
  v : (and/c pair? ....)
(seventh v)  any/c
  v : (and/c pair? ....)
(eighth v)  any/c
  v : (and/c pair? ....)
Accesses the first, second, etc. elment of “list” v. The argument need not actually be a list; it is inspected only as far as necessary to obtain an element (unlike the same-named functions from scheme/list, which do require the argument to be a list).

(rest v)  any/c
  v : pair?
The same as cdr.

(last-pair v)  pair?
  v : pair?
Returns the last pair in v, raising an error if v is not a pair (but v does not have to be a proper list).

(merge-sorted-lists lst1 lst2 less-than?)  list?
  lst1 : list?
  lst2 : lst?
  less-than? : (any/c any/c . -> . any/c)
Merges the two sorted input lists, creating a new sorted list. The merged result is stable: equal items in both lists stay in the same order, and these in lst1 precede lst2.

(mergesort lst less-than?)  list?
  lst : list?
  less-than? : (any/c any/c . -> . any/c)
The same as sort.

(quicksort lst less-than?)  list?
  lst : list?
  less-than? : (any/c any/c . -> . any/c)
The same as sort.