【发布时间】:2018-10-04 00:56:43
【问题描述】:
您好,我是 Common Lisp 的初学者。我想检查两个变量是否为整数。如果 n 和 m 都是整数,我希望它返回 - 如果它是负数,0 如果它是零,+ 如果它是正数,NIL 如果它不是 n 和米。我想出了如何用一个变量来做到这一点,但我似乎无法弄清楚如何用两个变量来做到这一点。谢谢。
这是接受数字参数并返回 - 如果它是负数,0 如果它是零,+ 如果它是正数和 NIL 如果它不是整数的代码:
(defun sign (n)
(if(typep n 'integer)
(cond ((< n 0) '-)
((= n 0) 0)
((> n 0) '+))))
每种情况的输出是:
CL-USER> (sign 3)
+
CL-USER> (sign -3)
-
CL-USER> (sign 0)
0
CL-USER> (sign 3.3)
NIL
这是我用于检查两个变量的代码,我希望它检查 n 和 m 是否为整数以及 n 和 m 是正数、负数还是零:
(defun sign (n m)
(if (and (typep n 'integer) (typep m 'integer))
(cond (and ((< n 0) '-) ((< m 0) '-))
(and ((= n 0) 0) ((= m 0) 0))
(and ((> n 0) '+) ((> m 0) '+)) ))))
【问题讨论】:
标签: lisp common-lisp