문제

피터 세이벨에서 실용적인 공통 LISP, 그는이 예를 제시합니다.

(do ((nums nil) (i 1 (1+ i)))
    ((> i 10) (nreverse nums))
  (push i nums))

루프 내부에 Nums를 사용하지만 스텝 형식을 제공하지 않는 방법을 알 수 있습니다. 왜 이렇게하기보다는 가변 정의에 NUM을 넣으시겠습니까?

(let (nums) (do ((i 1 (+ i 1)))
         ((> i 10) (nreverse nums))
       (push i nums)))

나는 좋은 이유가 있다고 확신하지만 아직 그것을 얻지 못합니다.

도움이 되었습니까?

해결책

편리하고 계약을 저장하기 때문입니다. 또한, 축합기는 개념적으로 루프에 속하므로 왜 거기에 두지 않겠습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top