Функция игнорирует первую функцию в диапазоне - PullRequest
0 голосов
/ 09 октября 2018

Так что в моей функции мне нужно возвести в квадрат все числа в диапазоне от a до b.

Это мой код:

(define (square x)
  (* x x))

(define (consecutive-squares a b)
  (if (> a b)
      '()
      (map square (consecutive-ints(+ a 1)b))))

При запуске теста (consecutive-squares 1 10) он выдает (4 9 16 25 36 49 64 81 100), ему совершенно не хватает первого числа в диапазоне 1.Что необходимо для прохождения тестов примера

1 Ответ

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

Функция consecutive-ints знает, как добавить 1 к каждому значению, чтобы получить следующее значение в диапазоне, вам не нужно делать это при вызове.Я также ожидал, что он будет обрабатывать пустой диапазон, поэтому вам не нужна ваша собственная проверка для этого.

(define (consecutive-squares a b)
  (map square (consecutive-ints a b))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...