LISP는 가변 구문 추론을 수행합니다
문제
피터 세이벨에서 실용적인 공통 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)))
나는 좋은 이유가 있다고 확신하지만 아직 그것을 얻지 못합니다.
해결책
편리하고 계약을 저장하기 때문입니다. 또한, 축합기는 개념적으로 루프에 속하므로 왜 거기에 두지 않겠습니까?
제휴하지 않습니다 StackOverflow