(defun LengthN_ALE (L / Fx c)
(setq c 0)
(defun Fx (L n)
(foreach e L
(setq n (1+ n))
(or
(atom e)
(if (listp (cdr e))
(setq n (1- (Fx e n)))
(setq n (1+ n))
)
)
)
n
)
(Fx L c)
)
more readable...
(defun LengthN_ALE2 (L / Fx c)
(setq c 0)
(defun Fx (L n)
(foreach e L
(cond
( (atom e) (setq n (1+ n)) )
( (listp (cdr e)) (setq n (Fx e n)) )
( T (setq n (+ 2 n)) )
)
)
n
)
(Fx L c)
)