More Examples of Recursion


; Append two lists
(DEFUN APPEND (X Y)
  (IF X (CONS (FIRST X)
              (APPEND (REST X) Y))
        Y) )


; Reverse a list
(DEFUN REVERSE (L)
  (REVERSE1 NIL L))

(DEFUN REVERSE1 (ANSWER LST)
 (IF LST
     (REVERSE1 (CONS (FIRST LST) ANSWER)
               (REST LST))
     ANSWER))


; Associate key with list of pairs
(DEFUN ASSOC (X L)
  (IF L (IF (EQL X (FIRST (FIRST L)))
            (FIRST L)
            (ASSOC X (REST L)) )) )

Contents    Page-10    Prev    Next    Page+10    Index