(defun char-is-period? (character) "This checks to see if a character is a period. Returns T or nil." (char= character #\.)) (defun ip->byte (ip-address) (let ((ip-list (map 'list #'(lambda (c) (print c)) ip-address)) (loop-var 0) ;; used to count numbers (loop-list '(nil))) ;; used to put counts into list ;; let's generate another list from the ip-list where we ;; see how many numbers are on either side of each period (loop for i in ip-list do (if (not (char-is-period? i)) (setf loop-var (1+ loop-var)) (progn ;; Put loop-var in list ;; This will make a reversed list ;; Make sure to reverse it later (push loop-var (nth 0 loop-list)) (setq loop-var 0)))) (reverse loop-list))) ;; I want it to return a list like this: ;; '(3 3 1 3) ;; Instead, it returns: (ip->byte "192.168.0.232") => ((1))