Я начинающий программист. Я должен написать простую программу в чистом схеме, которая выведет прямоугольник заданной высоты и ширины (например, 4,6):Вектор изменения вектора векторов
111111
100001
100001
111111
1 представляет собой черную границу, 0 пустое пространство.
Я столкнулся с препятствием. Мое решение - вектор векторов #(#(111111) (100001) (100001) (100001))
, потому что его легко изменить позже. Сначала я создаю вектор векторов, заполненных нулями, и позже я хочу установить его значения равными 1.
Проблема в том, что, например, если я хочу изменить первый элемент первого вектора на 1, я не знаю, почему набор программ первые элементы всех векторов к 1. Так что я хочу получить: : #(100000) (000000) (000000) (000000))
но я получаю #(#(100000) (100000) (100000) (100000))
код:
(vector-set! (vector-ref vect 0) 0 "1")
кто-нибудь есть explenation на возможно более простое решение?
к сожалению, я должен был пост об этом раньше: я создаю его: '(определение vect (make-vector h (make-vector w 0))) В этом проблема? – maciek
@ MaciekBąk: да, точно такая же ситуация. Вы создаете один вектор размера 'w', тогда вы передаете ссылку на это на внешний' make-vector', который просто повторяет ссылку вместо копирования вектора. –
OK Я понимаю. Однако я не могу использовать векторную копию или любые другие дополнительные библиотеки. Есть ли простой способ построить 2D-вектор h-высоты и w-ширины, чтобы все строки были отдельными? – maciek