cha*_*ker 12 clojure pretty-print
我在REPL,我创建了一个java数组:
=> (def arr (double-array [1 2 3]))
Run Code Online (Sandbox Code Playgroud)
当然,如果我想看看我arr,我得到:
=> arr
#<double[] [D@2ce628d8>
Run Code Online (Sandbox Code Playgroud)
有什么我可以做的,会使像java原语的数组打印像clojure的persistentVector?
=> arr
[1.0 2.0 3.0]
Run Code Online (Sandbox Code Playgroud)
我知道我可以将我的数组包装在某种漂亮的打印功能中(这是我目前所做的),但这种情况很痛苦,例如,矢量是地图的一部分:
=> my-map
{"1" #<double[] [D@47254e47>, "2" #<double[] [D@11d2625d>}
Run Code Online (Sandbox Code Playgroud)
Sco*_*ott 18
会像以下一样简单吗?
user=> (seq arr)
(1.0 2.0 3.0)
Run Code Online (Sandbox Code Playgroud)
如果它仅用于REPL,那么技术语义也许并不重要.
更新
事实证明,漂亮的print(pprint)可以很好地处理你的矢量图:
user=> (def my-map {"1" (double-array [1 2 3])
"2" (double-array [1 2 3])})
#'user/my-map
user=> (pprint my-map)
{"1" [1.0, 2.0, 3.0], "2" [1.0, 2.0, 3.0]}
Run Code Online (Sandbox Code Playgroud)
最终更新:来自评论中链接的Google网上论坛讨论
发问者在下面的讨论中找到了他喜欢的答案:
>有没有办法让Clojure repl默认打印漂亮?
尝试:
(clojure.main/repl :print pprint)>谢谢!这正是我所需要的.