SUBSET loses when you try to pass in the predicate as an argument: (DEFUN SUBSET-LOSS (PREDICATE) (SUBSET PREDICATE '(1 2 -3 4 6 -7))) (SUBSET-LOSS (FUNCTION MINUSP)) It says that %POP is an undefined function.