Как я могу сделать увеличение списка и матрицы в схеме? - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь создать увеличивающуюся матрицу, но сначала я хочу создать увеличивающиеся списки. Вот моя процедура;

(define make-lst
  (lambda (a b)
    (if (= a 0)
        '()
        (list b
              (make-lst (- a 1) (+ b 1))))))

Но это дает мне вывод;

(10 (11 (12 (13 (14 (15 (16 (17 (18 (19 ())))))))))) ;(make-lst 10 10)

Как мне получить список вроде

'(10 11 12 13 14 15 16 17 18 19)

Я действительно новичок в Схеме

1 Ответ

0 голосов
/ 29 октября 2018

Поскольку (list 1 2) составляет список (1 2), а make-list возвращает список, неудивительно, что он создает aoutput (first (second (...)))

Теперь (list a b) делает (cons a (cons b '()), и, таким образом, вы можете заменить list на cons так, чтобы он занимал один элемент и хвост и составлял список этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...