Ранее уже было указано, что строка — это последовательность символов. Nim также поддерживает последовательности произвольного типа, называемые seq. Например, последовательность целых чисел записывается как seq[int], а последовательность объектов Point — как seq[Point].
Мы хотим иметь возможность рисовать не только отдельные пиксели. Процедура putPixels позволяет это сделать:
proc putPixels(points: seq[Point]; col: Color) = # 1
for p in items(points): # 2
pixels.putPixel p.x, p.y, col # 3
putPixels(@[Point(x: 2, y: 3), Point(x: 5, y: 10)], Gold) # 4
putPixels принимает список точек.items позволяет перебирать параметр points.col. Вызов процедуры putPixel выполняется из модуля pixels. Как можно видеть, идентификатор можно дополнить указанием модуля, в котором он был объявлен. Иногда это улучшает читаемость кода.putPixels с помощью последовательности @[Point(x: 2, y: 3), Point(x: 5, y: 10)].Последовательность можно создать с помощью @[...]. Пустая последовательность — в виде @[]. Последовательности обеспечивают произвольный доступ: доступ к i-му элементу можно получить через s[i]. Индексация начинается с 0. Такое же обозначение доступно для строк.