在 ghci 会话中(恰好在 jupyter 内核中),我想在 haskell 中垂直打印一个列表。(在我的用例中,我正在查看一个 CSV,所以这个列表代表一列数据,我希望显示能够反映这一点。)
Prelude> print ["1111111111", "2222222222", "3333333333", "4444444444", "5555555555", "6666666666"]
["1111111111","2222222222","3333333333","4444444444","5555555555","6666666666"]
我正在查看 GenericPretty 的文档:
http://hackage.haskell.org/package/GenericPretty
我有这个数据:
import Text.PrettyPrint.GenericPretty
Prelude> toprint = ["1111111111", "2222222222", "3333333333", "4444444444", "5555555555", "6666666666"]
Prelude> print toprint -- first, show standard print
["1111111111","2222222222","3333333333","4444444444","5555555555","6666666666"]
我试图漂亮地打印:
Prelude> pretty toprint
"[\"1111111111\",\"2222222222\",\"3333333333\",\"4444444444\",\n \"5555555555\",\"6666666666\"]"
这不太对。您可以看到它确实添加了一个“\n”,但它不是在每一行之后,而且有趣的是它也没有在交互式会话中起作用。它呈现为文本而不是打印。
在python中,我会这样做:
>>> from pprint import pprint as pp
>>> print(['1111111111', '2222222222', '3333333333', '4444444444', '5555555555', '6666666666'])
['1111111111', '2222222222', '3333333333', '4444444444', '5555555555', '6666666666']
>>> pp(['1111111111', '2222222222', '3333333333', '4444444444', '5555555555', '6666666666'])
['1111111111',
'2222222222',
'3333333333',
'4444444444',
'5555555555',
'6666666666']
在我的会话中打印的这个由“\n”分隔的垂直平铺正是我正在寻找的。我该怎么做呢?