clojure - 如何打印向量中的元素
问题描述
我有一个向量向量,我想打印每个向量中的元素
我尝试了 pprint 但没有按要求工作
这是我希望打印的向量向量:
[["+" "+" "+" "#" "!" "-" "#" "#" "#" "-" "-" "-" "-"]
["!" "#" "+" "+" "+" "#" "+" "+" "+" "-" "#" "#" "-"]
["#" "#" "#" "#" "+" "#" "+" "#" "+" "#" "-" "#" "#"]
["+" "+" "+" "#" "+" "+" "+" "#" "+" "#" "-" "-" "-"]
["+" "#" "+" "#" "#" "#" "#" "+" "+" "-" "#" "#" "-"]
["+" "#" "+" "+" "+" "+" "+" "+" "#" "-" "-" "-" "-"]
["+" "#" "#" "#" "#" "#" "#" "#" "#" "#" "#" "#" "#"]
["+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "@"]]
这是我想要的输出:
+++#--###--#-
!#+++#+++-##-
####+#+#+#!##
+++#+++#+#!!!
+#+####++!##!
+#++++++#!!!!
+############
++++++++++++@
解决方案
您可以使用cl-format处理带有控制字符串的列表(在这种情况下为列表列表):
(def input
[["+" "+" "+" "#" "!" "-" "#" "#" "#" "-" "-" "-" "-"]
["!" "#" "+" "+" "+" "#" "+" "+" "+" "-" "#" "#" "-"]
["#" "#" "#" "#" "+" "#" "+" "#" "+" "#" "-" "#" "#"]
["+" "+" "+" "#" "+" "+" "+" "#" "+" "#" "-" "-" "-"]
["+" "#" "+" "#" "#" "#" "#" "+" "+" "-" "#" "#" "-"]
["+" "#" "+" "+" "+" "+" "+" "+" "#" "-" "-" "-" "-"]
["+" "#" "#" "#" "#" "#" "#" "#" "#" "#" "#" "#" "#"]
["+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "@"]])
(use 'clojure.pprint)
(cl-format *out* "~{~{~a~}~%~}" input)
输出:
+++#!-###----
!#+++#+++-##-
####+#+#+#-##
+++#+++#+#---
+#+####++-##-
+#++++++#----
+############
++++++++++++@
说明:
~a
是任何类型的格式参数。当包含在~{
and~}
中时,格式参数将在列表上进行迭代。~{
因此,当用and括起来两次时~}
,~a
将应用于嵌套列表中的每个元素(字符)。最后~%
一个~}
是输出换行符。有了这个,您可以轻松地使用控制字符串更改输出。例如:
(cl-format *out* "~{~{(~a)~^ ~}~^~%~%~}" input)
(+) (+) (+) (#) (!) (-) (#) (#) (#) (-) (-) (-) (-)
(!) (#) (+) (+) (+) (#) (+) (+) (+) (-) (#) (#) (-)
(#) (#) (#) (#) (+) (#) (+) (#) (+) (#) (-) (#) (#)
(+) (+) (+) (#) (+) (+) (+) (#) (+) (#) (-) (-) (-)
(+) (#) (+) (#) (#) (#) (#) (+) (+) (-) (#) (#) (-)
(+) (#) (+) (+) (+) (+) (+) (+) (#) (-) (-) (-) (-)
(+) (#) (#) (#) (#) (#) (#) (#) (#) (#) (#) (#) (#)
(+) (+) (+) (+) (+) (+) (+) (+) (+) (+) (+) (+) (@)
请注意,“ ~^
”是在列表用完时停止迭代的指令。所以“ ~^<space>
”会抑制每行最后一个元素之后的空格。而“ ~^~%~%
”将抑制最后一行之后的双换行符。
推荐阅读
- c# - 有没有办法有效地比较每个数组值?
- python - 如何找到具有特定 URL 的 requests.post 函数所需的数据参数?
- php - Laravel 包配置不合并
- python - 文本文件迭代、切片、将较大的行分成大小相等的较小行
- excel - 删除 3 个单词后的所有文本 - Excel
- c# - 使用 .NET Core 3 和 React 下载 excel 文件
- python - 尝试将字符串更改为年份的错误消息
- node.js - 用笑话模拟静态吸气剂
- python - Python:如何检查 Azure Function 是否仍在运行并有队列
- android - 将 FutureBuilder 添加到 ListView 子属性