(defun cross-lists (fn xlist ylist) (mappend (lambda (y) (mapcar (lambda (x) (funcall fn x y)) xlist)) ylist))