Как уменьшить список логических значений в Common Lisp?

Учитывая список значений, я хочу чтобы уменьшить список до T, если все элементы не равны NIL, и NIL в противном случае. Это дает мне ошибку:

(apply #'and (get-some-list))

Как это:

(reduce #'and (get-some-list))

Это лучшее, что я придумал:

[11]> (defun my-and (x y) (and x y))
MY-AND

[12]> (reduce #'my-and '(T T T T T))
T

[13]> (reduce #'my-and '(T T T T NIL))
NIL

Почему "# 'и" недействительны? Есть ли более идиоматический способ сделать это в Common Lisp?

12
задан postfuturist 26 December 2010 в 20:13
поделиться