我想转换("USERID=XYZ" "USERPWD=123")为"USERID=XYZ&USERPWD=123".我试过了
(apply #'concatenate 'string '("USERID=XYZ" "USERPWD=123"))
Run Code Online (Sandbox Code Playgroud)
将返回""USERID=XYZUSERPWD=123".
但我不知道如何插入'&'?以下功能有效但似乎有点复杂.
(defun join (list &optional (delim "&"))
(with-output-to-string (s)
(when list
(format s "~A" (first list))
(dolist (element (rest list))
(format s "~A~A" delim element)))))
Run Code Online (Sandbox Code Playgroud) 我有以下列表: (X X O NIL NIL O NIL NIL O)
我想格式化它看起来像这样:
X | X | O
--+---+--
| | O
--+---+--
| | O
Run Code Online (Sandbox Code Playgroud)
我可能FORMAT会把我和Lisp一点儿都知道的东西拼凑在一起,但它可能会非常糟糕.任何指针都将非常感激.
如果我这样做,我有一个矩阵定义
(format t "~a" (get-real-2d 0 0))
Run Code Online (Sandbox Code Playgroud)
它打印出第一行第一列中的元素
如果我这样做
(format t "~a" (get-real-2d a 0 1))
Run Code Online (Sandbox Code Playgroud)
它打印出第一行第二列中的元素
如果我这样做
(format t "~a" (get-real-2d a 1 0))
Run Code Online (Sandbox Code Playgroud)
它打印出第二行第一列中的元素.
矩阵a看起来像这样
a =
((0 1 2)
(3 4 5)
(6 7 8))
Run Code Online (Sandbox Code Playgroud)
我希望你能告诉我如何写一个dotimes循环或其他循环,尽可能少的行将使用get-real-2d函数打印矩阵,所以输出如下所示:
0 1 2
3 4 5
6 7 8
Run Code Online (Sandbox Code Playgroud)
我只是希望你能给我看一个非常小的光滑循环,我可以用来打印矩阵,我可以在我的lisp库中使用一些真正专业的东西,比如只使用变量的矩阵.就像是:
(format t "~a" (get-real-2d i j))
Run Code Online (Sandbox Code Playgroud)
而不是一堆:
(format t "~a" (get-real-2d 0 0))
(format t "~a" (get-real-2d 0 1))
(format t "~a" (get-real-2d 0 2)) …Run Code Online (Sandbox Code Playgroud)