2010-03-14 7 views

답변

5

DrScheme에서 테스트했는데 꽤 이상하지는 않습니다. 당신은 PLT 방식을 사용하는 경우

(define (gen-list x) 
    (if (= x 0) (list 0) (cons x (gen-list (- x 1))))) 
+1

'(append (list x) ...) 대신'(cons x ...)'일 수는 없습니까? –

+0

@ Nathan - 수정 및 수정 – zellio

0

의 지능형 라이브러리는 오히려 깔끔하게이 작업을 수행하게됩니다 :

; natural -> (listof natural) 
(define (list-to-zero start-num) 
(for/list ([i (in-range start-num 0 -1)]) 
    i)) 

재귀 형태로 그냥 대체 ...

3

을 지금은 있다고 숙제 문제는 꼬리 재귀 버전이 대안이 될 수 있다고 생각합니다.

(define (gen-list x) 
      (let lp ((n 0) (ret '())) 
       (if (> n x) 
       ret 
       (lp (1+ n) (cons n ret))))) 
관련 문제