3
목표 :unfold
함수는 두 개의 인수 만 사용합니다.체계에서 펼치기 기능
인자 :
- 제 인자 I 및 반환 nil을 어떤 유형 또는 이들 두 가지의 처음 두 개의 요소 (의 단점 쌍의 초기 값을 취 F이고 다음 요소 그 어떤 유형 A의 목록과 어떤 유형 I의 다음 초기 값으로 간다.
- 두 번째 인수는 몇 가지 유형 I의 초기 값 및 반환이 내가 지금까지 가지고 있고 나는 그것이 작동하지 않는 이유는 확실하지 않다 무엇
A 형의 항목의 목록입니다 : 이 결과가 있어야하는데,
'(5 4 3 2 1)
에
(define (descending i)
(if (= i 0)
(list)
(cons i (- i 1))))
(define nil (list))
(define (unfold f init)
(if (eq? (f init) '())
(list)
(cons init (unfold f (f init)))))
(unfold (descending 5))
은 평가해야합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
나는 봅니다! 감사! 또한 '(-100 ... 100)을 반환하는 오름차순 함수를 정의하려면 다음 코드가 -5에서 멈춘 이유를 모르겠습니다. (정의 (오름차순 i) (if (= i (- i)) (cons i (+ i 5)))) (펼치기 오름차순 (- 100)) –
상태가'(= i (- i))')'이므로 0에서 멈추고 consed는 마지막으로 '-5'입니다. –
나는 그저해야만한다고 생각한다. (= i (105)). 방금 함수를 정의하여 초기 값의 음수를 포함하여 모든 숫자를 인쇄 할 수 있다고 생각했습니다. –