Scheme 例如:cons'123=>'12。3@Barmar啊,我明白你的意思了。如果您注意到,这就是我在第二个解决方案中所做的。 (define (square-list items) (define (iter things answer) (if

Scheme 例如:cons'123=>'12。3@Barmar啊,我明白你的意思了。如果您注意到,这就是我在第二个解决方案中所做的。 (define (square-list items) (define (iter things answer) (if ,scheme,racket,Scheme,Racket,例如:cons'123=>'12。3@Barmar啊,我明白你的意思了。如果您注意到,这就是我在第二个解决方案中所做的。 (define (square-list items) (define (iter things answer) (if (null? things) answer (iter (cdr things) (cons (square (car things)) ans


例如:cons'123=>'12。3@Barmar啊,我明白你的意思了。如果您注意到,这就是我在第二个解决方案中所做的。
(define (square-list items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things)
              (cons (square (car things))
                    answer))))
  (iter items nil))
(square-list (list 1 2 3 4))
(define (square-list2 items)
  (square-list-helper items '())
)

(define (square-list-helper items squares)
  (cond
    [(empty? items) squares]
    [else (append 
             squares 
             (square-list-helper (cdr items) (list (square (car items)))))]
    )
 )
(define (square-list items)
  (if (null? items)
      nil
      (cons (square (car items))
            (square-list (cdr items)))))
(define (square-list items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things)
              (cons (square (car things))
                    answer))))
  (iter (reverse items) nil))
(define (square-list items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things)
              (append answer
                      (list (square (car things)))))))
  (iter items nil))
(square-list '(2 3))
(iter '(3)
      (cons (square 2) nil))
(iter '(3) '(4))
(iter '()
      (cons (square 3) '(4))
(iter '() '(9 4))
(append answer (list (square (car things))))
(define (square-list items)
  (define (iter things answer)
    (if (null? things)
      answer
      (iter (cdr things)
            (append answer (list (square (car things)))))))
(iter items (list)))