[m@green09 ~]$ ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> print "asdf"
"asdf"
Prelude> print "\tasdf"
"\tasdf"
Prelude>
太棒了。太棒了。
如何打印表格或换行符?
答案 0 :(得分:1)
您只需这样做。
> putStrLn "a\tb"
a b
答案 1 :(得分:0)
当您在REPL中插入类型Show a => a
的值时,ghci将对其执行print
,如果该值的类型为IO ()
,它将对其求值。如果您查看印刷的定义,您会看到print = putStrLn . show
,或更简单地说是print s = putStrLn (show s)
。
问题在于show
并不是漂亮的打印工具。该函数的目的是“显示”底层结构,以便可以由Haskell或人工read
来支持。这是显示转义字符的地方。您可以检查show "\t" /= "\t"
。
如果要实际按原样打印字符串,则应显式调用putStr
或putStrLn
操作,这将省略此show
层。
几个例子:
>>> putStrLn "a\tb"
a b
>>> "a\tb"
"a\tb"
>>> show "a\tb" -- notice that it is actually `putStrLn (show (show "a\tb"))`!
"\"a\\tb\""
>>> print "a\tb"
"a\tb"