(defun contar(lista)
(cond
((null lista) 0)
(T (+ 1 (contar (rest lista))))
)
)
Si probamos esto:
CL-USER 1 > (contar '(1 2 3 4 5))
5
Veamos el mismo programa en Racket:
(define (contar lista)
(cond
[(empty? lista) 0]
[else (+ 1 (contar (rest lista)))]
)
)
> (contar (list 1 2 3))
3
Como se puede ver Racket es un hijo o nietos de lisp, por ende tienen la misma sintasis.