Я хотел бы иметь поток в схеме, который содержит кучу матриц определенного порядка.
Потоком этого потока будет матрица [1 6 0 3]; то есть строка 1 столбец 1 равна 1, строка 1 столбец 2 равна 6, строка 2 столбец 1 равна 0, а строка 2 столбец 2 равна 3. Каждая матрица технически является списком, но у меня есть представление (конструктор и селекторы) для матрица 2х2. Итак, это будет поток матриц 2x2.
Теперь следующим элементом в потоке должен быть [2 10 0 5]. Схема здесь такова, что матрицы в следующем потоке увеличиваются следующим образом: [k (4k+2) 0 (2k+1)], где k — это k-я матрица.
У меня есть идея, как я хочу их хранить. Например, я знаю, что могу получить непрерывный поток с помощью:
(define ones (cons-stream 1 ones))
и непрерывный поток целых чисел с:
(define integers (cons-stream 1 (add-streams ones integers)))
Итак, я хотел бы непрерывный поток матриц в формате, описанном выше. То есть первый (автопоток) будет матрицей, представленной [1 6 0 3], затем матрицей, представленной [2 10 0 5], затем матрицей, представленной [3 14 0 7].
Итак, я знаю, что это будет что-то вроде:
(define start-matrix '(1 6 0 3))
(define init-stream (cons-stream start-matrix
(add-streams ___________
init-stream)))
Подчеркнуто то, что «я думаю» является недостающей частью. Я удалил процедуру «добавить потоки» из этого поста, чтобы прояснить свой пост.
*** РЕДАКТИРОВАТЬ: понял, что я думаю, что моя «стартовая матрица» должна быть 1 6 0 3, а не 1 4 0 2.
Но должен быть способ добавить 1 4 0 2 к k-й матрице.