Описание функции gridList:
Принимает два входа Integer
, x
и y
и возвращает список кортежей, представляющих координаты каждой ячейки из (1,1)
до (x,y)
.
Пример вывода
$> gridList 3 3
$> [(1,1),(2,1),(3,1),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)]
Исходный код
gridList :: Integer -> Integer -> [(Integer,Integer)]
gridList 1 1 = [(1,1)]
gridList 1 y = helper 1 y
gridList x y = (helper x y) ++ gridList (x-1) y
where
helper :: Integer -> Integer -> [(Integer, Integer)]
helper x 1 = [(x,1)]
helper x y = (x,y) : (helper x (y-1))
Вопрос: Код не компилируется, давая следующее error: Variable not in scope
, ссылаясь на строку 3, где впервые вводится помощник. Почему where
не решает эту проблему?
Спасибо