有没有办法获得与此相同的输出:(手是卡片列表)
(loop for card in hand
with i = 1
do
(format t "~&~a. ~a~%" i card)
(incf i))
Run Code Online (Sandbox Code Playgroud)
1. (5 . HEARTS)
2. (5 . CLUBS)
3. (10 . DIAMONDS)
4. (JACK . DIAMONDS)
5. (8 . CLUBS)
Run Code Online (Sandbox Code Playgroud)
但只使用一次调用格式化?到目前为止,我有这个,但我不知道如何增加索引。
(format nil "~{~%1. ~a~}~%" hand)
Run Code Online (Sandbox Code Playgroud)
1. (5 . HEARTS)
1. (5 . CLUBS)
1. (10 . DIAMONDS)
1. (JACK . DIAMONDS)
1. (8 . CLUBS)
Run Code Online (Sandbox Code Playgroud)
我还尝试在 Call Function 指令旁边使用闭包,但是您必须为每次调用重置计数器,而且感觉非常笨拙。
(let ((counter 0))
(defun increment (output-stream format-argument colonp at-sign-p &rest directive-parameters) …Run Code Online (Sandbox Code Playgroud)