>>56

(defun slice* (f n lis)
(reverse (apply #'mapcar f
(do ((in lis (nthcdr n in))
(out (make-list n) (mapcar #'cons (subseq in 0 n) out)))
((null in) out)))))

(defun slice (n lis) (slice* #'list n lis))
(defun slice-pair (lis) (slice* #'cons 2 lis))