Lisp - Проверить, является ли ввод десятичным или строковым - PullRequest
0 голосов
/ 25 октября 2018

Я печатаю треугольник чисел в Лиспе и хочу убедиться, что входные данные при вызове функции являются целыми числами.Если это строка или десятичная дробь, она должна вернуть сообщение, не принимая входные данные.Это мой код для чисел.

(defun nested-loop (n)
  (loop for i from 1 to n doing
  (loop for j from 1 to i collecting
    (progn
      (prin1 j)))
   (format t "~%")))

(nested-loop 5)

1 Ответ

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

Используйте макрос CHECK-TYPE:

CL-USER 9 > (let ((n "10"))
              (check-type n integer))

Error: The value "10" of N is not of type INTEGER.
...