Есть ли в Common Lisp встроенная функция для приведения любой вещи к ее логическому значению, как это делает функция bool в Python?
bool
Нет ничего специально для этого. Вы не можете использовать boolean в качестве аргумента типа для coerce. Вы можете использовать:
boolean
coerce
(defun boolean-value (x) (not (not x)))
Это аналог идиомы !!x, используемой во многих других языках.
!!x
Вроде. (and form t) вернет t, если form не является одним из ложных значений nil или ().
(and form t)
t
form
nil
()
Т.е. это макрос, а не функция, и для этого требуется дополнительный аргумент t.