我希望有人能帮我解决这个问题,因为我找不到任何有用的答案,而且我是 Lisp 的新手。
我要做的是测试一个元素的值,如果它是 1 则打印一些东西,否则打印空白字符。这在所有列表参数的值都为 1 时有效:
(defun print-lst (list)
(format t "~%~a ~a ~a~%"
(if (= (nth 0 list) '1)
'¦)
(if (= (nth 1 list) '1)
'P)
(if (= (nth 2 list) '1)
'¦)))
所以输出是¦ P ¦
。但是,如果列表中的第二个元素是 0,它会在那个位置打印 NIL,¦ NIL ¦
我希望它打印一个空格¦ ¦
(不仅仅是跳过那个字符¦¦
,如果输出行的那个位置有一个空白字符很重要测试值不是 1)。
(if (= (nth 1 list) '1) 'P)
如果条件不满足,是否有任何方法可以返回空白字符,或者是否有其他方法可以执行此操作?我希望我解释得很好。谢谢你。