Как добавить аргумент процедуры в ваш список - Racket - PullRequest
0 голосов
/ 18 марта 2020
(define (list-expand L)
  (if (empty? L)
      empty
      (append (helper-method (car L) null)(list-expand (cdr L)))))
(define (helper-method n lst2)
  (if (= n 1) '(1)
      (append lst2 '(n) (helper-method (- n 1) null ))))
Testing list-expand 
Expected: '(4 3 2 1 3 2 1 1), actual: '(n n n 1 n n 1 1)
Expected: '(5 4 3 2 1 2 1), actual: '(n n n n 1 n 1)
Expected: '((7 6 5 4 3 2 1 8 7 6 5 4 3 2 1), actual: '(n n n n n n 1 n n n n n n n 1)

Извините, я не знаю, как ввести код в StackOverflow. Надеюсь, вы не против.

В любом случае, я знаю, что ошибка в вспомогательном методе, когда я добавляю '(n) в список, возвращаемый рекурсией. Однако как я могу исправить эту ошибку, поскольку я хочу, чтобы значение n добавлялось в список?

1 Ответ

1 голос
/ 18 марта 2020

Не заключайте его в кавычки, вызовите функцию list, чтобы создать список с переменными аргументами.

(define (helper-method n lst2)
  (if (= n 1) '(1)
      (append lst2 (list n) (helper-method (- n 1) null ))))
...