Skip to content

Instantly share code, notes, and snippets.

@unionx
Created August 20, 2012 04:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save unionx/3401031 to your computer and use it in GitHub Desktop.
Save unionx/3401031 to your computer and use it in GitHub Desktop.
traverse a list recursively and find specific elements
(defun traverse (lst elt)
(defun traverse-and-count (lst elt cnt)
(if (= 0 (length lst))
cnt
(progn
(if (equal elt (car lst))
(traverse-and-count (cdr lst) elt (+ 1 cnt))
(traverse-and-count (cdr lst) elt cnt)))))
(traverse-and-count lst elt 0))
(traverse '(1 3 4 5 6 1 4 1) 1) ;; 3
(traverse '("a" "b" 2 5 "b" 8 0) "b") ;; 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment