y
는 0
다시 리셋되는되지 않습니다. y
까지 코드가 35
으로 증가하고 x
이 20 번 증가하지만, 이후의 각 증가마다 x
y
은 여전히 35
으로 설정됩니다. 당신은 당신이 더 같은 대구를 필요 x
및 y
값의 각 조합을 통해 가고 싶어하면
:
(while (< x 20)
(set! y 0)
(while (< y 35)
(gimp-message (string-append (number->string x) "-" (number->string y)))
(set! y (+ y 1))
)
(set! x (+ x 1))
)
다음
보다 완전한 예는 지금은 비록 일을하는 시간을 가졌다이다 이 질문은 Gimp (콘솔에서 작업 중이기 때문에 gimp-message
대신 print
을 사용하고 있지만 ti는 상호 교환 가능해야 함). 내가 x
의 처음과 마지막 값을 잡아 당겨있어이 기능을 내부
(define (SO x y)
(let* ((x! (car x)) (y! (car y)))
(while (< x! (car (cdr x)))
(set! y! (car y))
(while (< y! (car (cdr y)))
(print (string-append (number->string x!) "-" (number->string y!)))
(set! y! (+ y! 1))
)
(set! x! (+ x! 1))
)
)
)
: 나는 모두 분의 쌍과 최대 값을 나타냅니다 인수를 받아 SO
라는 기능 x
, y
을 정의하고 있습니다 시작하려면 및 y
((car x)
및 (car (cdr x))
을 사용하면 함수가 호출 된 후 let* to create two inner variables called
x! and
y! that I will be altering the value of (to remove side effects of having
x and
y`이 사용됩니다). 다음과 같은 출력을 얻을
(SO '(15 20) '(30 35))
: 당신과 같이이 함수를 호출하면 내가 @JasonSperske에 동의
"15-30"
"15-31"
"15-32"
"15-33"
"15-34"
"16-30"
"16-31"
"16-32"
"16-33"
"16-34"
"17-30"
"17-31"
"17-32"
"17-33"
"17-34"
"18-30"
"18-31"
"18-32"
"18-33"
"18-34"
"19-30"
"19-31"
"19-32"
"19-33"
"19-34"
을; 이것은 재귀가 아닙니다. 중첩 된 것을 의미합니까? –
네, 미안 해요. – noway