相关疑难解决方法(0)

在列表中连接字符串的规范方法是什么?

我想转换("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)

common-lisp

23
推荐指数
3
解决办法
5710
查看次数

格式化列表

我有以下列表: (X X O NIL NIL O NIL NIL O)

我想格式化它看起来像这样:

X | X | O
--+---+--
  |   | O
--+---+--
  |   | O
Run Code Online (Sandbox Code Playgroud)

我可能FORMAT会把我和Lisp一点儿都知道的东西拼凑在一起,但它可能会非常糟糕.任何指针都将非常感激.

lisp format common-lisp

2
推荐指数
1
解决办法
134
查看次数

需要有关如何在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)

lisp printing opencv common-lisp cffi

1
推荐指数
1
解决办法
948
查看次数

标签 统计

common-lisp ×3

lisp ×2

cffi ×1

format ×1

opencv ×1

printing ×1