Lisp - 检查输入是十进制还是字符串

men*_*ndy 1 lisp common-lisp

我在Lisp中打印一个数字三角形,我想确保调用该函数时的输入是一个整数.如果是字符串或小数,则应返回不接受输入的消息.这是我的数字代码.

(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)
Run Code Online (Sandbox Code Playgroud)

Rai*_*wig 8

使用宏CHECK-TYPE:

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

Error: The value "10" of N is not of type INTEGER.
Run Code Online (Sandbox Code Playgroud)