Есть ли способ проверить, имеет ли данный список номера или нет? - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь написать программу схемы, чтобы проверить, состоит ли данный список из чисел или нет, то есть, если входной список состоит из чисел, программа возвращает true.

Я пытался выяснить, что не такс моим кодом

(define (is_num(lst))
(if (not (number? (car lst)))
    #f
(is_num(cdr lst))))

1 Ответ

0 голосов
/ 22 декабря 2018
(define (isnum lst)
    (cond ((null? lst) #t)
          ((number? (car lst)) (isnum (cdr lst)))
          (else #f)))

Возвращается #t, если все символы представляют собой числа #f, если какой-либо символ не является числом.Например:

(isnum '(0 1 1 2)) ; will be #t
(isnum '(0 'a 1 2)) ; will be #f

Вам нужно прочитать о определение ( в двух словах ) и условия (я предлагаю condвместо if).

Вам необходимо условие остановки , иначе ваша рекурсия будет бесконечной.

...