Создание картинки карты с рекурсивной функцией

Я впервые использую блеск haskell, и у меня возникли некоторые проблемы, в этом коде:

-- the initial c and l will be imagine for dimension 9: (-160) 160 
-- (so the square ends in the center of the window

--         column;  line;   dimension   
drawmap :: Float -> Float -> Float -> Picture
drawmap c l d = (drawline x c l d) : (drawmap xs c (l+40) d)

drawline :: Float -> Float -> Float -> Picture
drawline c l d = if (d>0) then (Translate c l $ Color red (circle 20)) : (drawline (c+40) l (d-1))
                          else (Translate c l $ Color red (circle 20))

Единственный вопрос, который у меня есть сейчас, - это тип, потому что мне нужно, чтобы он был типа Picture, а не [Picture], какая-нибудь помощь?

А также, как мне сделать эту точку остановки:

drawline _ _ 0 = Nothing or [] 

Я знаю, что это неприемлемо, но как мне сказать, когда нужно прекратить делать круги?

Это совсем не практично, это просто очень простой пример, если кто-то поможет мне понять это, я смогу применить то, что мне действительно нужно.

0 ответов

Другие вопросы по тегам