(defun plist (lst)
(if (< (length lst) 20 )
(loop for elem in lst do (p elem))
(let ((l (length lst )))
(p (nth 0 lst )(nth 1 lst )(nth 2 lst )(nth 3 lst )
"... (" l " in total)... "
(nth (- l 4) lst )(nth (- l 3 ) lst )(nth (- l 2 ) lst )(nth (- l 1 ) lst ) )
)))
(defun p (x &rest others)
(cond ((listp x)( plist x ))
((stringp x)(format t x ))
(T (write x)))
(format t " ")
(if others (p others))