Contents    Page-10    Prev    Next    Page+10    Index   

Iterative Processing of List

The basic operation on a list is to walk along it, processing one element at a time. We will illustrate the design patterns for doing this with the length function.


(length '(a b c))       ->  3


public static int length (Cons arg) {
 int n = 0;
 for (Cons lst=arg; lst != null; lst = rest(lst) )
     n++;
  return n; }


(defun length (lst)
  (let (n)                ; let declares variables
    (setq n 0)              ; setq is like =
    (while (not (null lst)) ; while it is a cons
      (setq n (+ n 1))
      (setq lst (rest lst)) )
    n ))


public static int length (Cons lst) {
  int n = 0;
  while ( lst != null ) {
    n++;
    lst = rest(lst); }
  return n; }