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

Lisp-检查输入是十进制还是字符串,lisp,common-lisp,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) 使用宏检查类型: CL-USER 9 &

我正在用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)

使用宏
检查类型

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

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

使用宏
检查类型

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

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

有一些特定的函数允许您查看变量类型。看看例子2@melpomene,我使用了integerp函数,但它的回答是“EVAL:undefined function INTERGERP”@mendy Try
integerp
而不是
INTERGERP
。哦,孩子,我没看到,谢谢!有一些特定的函数允许您查看变量类型。看看例子2@melpomene,我使用了integerp函数,但它的回答是“EVAL:undefined function INTERGERP”@mendy Try
integerp
而不是
INTERGERP
。哦,孩子,我没看到,谢谢!