Добавьте к ответу Сванте: я не думаю, что есть какой-либо способ проверить, является ли данная функция предикатом, как вы могли бы это сделать на языке статической типизации. Большинство реализаций CL предоставляют функции самоанализа, такие как SBCL sb-introspect:function-arglist
, которые позволят вам проверить, что принят только один аргумент. Не гарантируется, что поведение функции нормальное, но может быть лучше, чем ничего.