0

再帰を使用して、以前に作成した基本的な形状 (y) をそれ自体の上に x 回スタックしようとしています。

(define stack-copies-of
   (lambda (x y)
     (if zero? x) 
         null
         (if > x 0) 
             (stack-copies-of (- x 1))))

図形を重ねて表示し続けてから 0 で停止するにはどうすればよいですか?

4

1 に答える 1

0

「基本的な形を積み重ねる」とは、再帰を使用してスタック (リスト) を構築することを意味する場合、これでうまくいきます。

(define stack-copies-of
  ; y is a shape, x is a number of shapes
  (lambda (x y)
    ; for zero or negative number of shapes, return the empty list
    (if (<= x 0) '()
    ; for more than zero shapes, use recursion to build a list
                 (cons y (stack-copies-of (sub1 x)))
    )))

実際に画面に形状を表示したい場合は、さらに明確にする必要があります。

于 2013-09-15T05:51:58.997 に答える