小编use*_*087的帖子

如何使用格式指令生成列表索引

有没有办法获得与此相同的输出:(手是卡片列表)

(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)

lisp formatting common-lisp

4
推荐指数
2
解决办法
65
查看次数

标签 统计

common-lisp ×1

formatting ×1

lisp ×1