我该如何创建图像的行和列?

时间:2013-02-23 12:28:04

标签: racket

首先,我正在浏览 HtDP第二版并使用 BSL 语言包。

我目前正在Exercise 131,这就是它所说的:

Exercise 131: Design two functions: col and row.

The function col consumes a natural number n and an image i. It produces a column—a vertical arrangement—of n copies of i.

The function row consumes a natural number n and an image i. It produces a row—a horizontal arrangement—of n copies of i

Use the two functions to create a rectangle of 8 by 18 squares, each of which has size 10 by 10.

我正在寻找地方形象,此外,上面没有什么突出的如何做到这一点。这些功能不会拍摄图像列表,而是拍摄单个图像。 EX :(除了rect1 rect2 rect3)而不是(除了(列出rect1 rect2 rect3))。另外,如果我按照函数的定义来看,似乎我会在图像上重叠,因为函数本身是独立的。基本上我所谈论的重叠是在每行的第一张图像上。

我不是在寻找答案(虽然如果你得到它,我会接受它),但是一个暗示,标志,神圣介入正确的方向。

1 个答案:

答案 0 :(得分:2)

这是一个让你前进的例子:

; images->row : list-of-images -> image
(define (row->image row)
  (cond
     [(empty? row) empty-image]
     [else         (beside (first row) 
                           (row->image (rest row)))]))

(row->image (list (square 20 "solid" "red")
                  (square 20 "solid" "blue")
                  (square 20 "solid" "green")))