Возврат из вложенного цикла в Common Lisp

Я пытаюсь преобразовать этот код Python в Common Lisp:

for a in xrange(1,1000):
    for b in xrange(a,1000):
        c = (a**2 + b**2) ** 0.5
        s = a + b + c
        if s == 1000:
            return a * b * c

Моя первая попытка была:

(loop for a from 1 to 999
      do (loop for b from a to 999
               for c = (sqrt (+ (expt a 2) (expt b 2)))
               for s = (+ a b c)
               until (= s 1000)
               finally return (* a b c))))

Это не работает Моя задача: когдаs хиты 1000 делают целое выражение выше возврата(* a b c), Как вернуть значение из макроса вложенного цикла?

Ответы на вопрос(3)

Ваш ответ на вопрос