我正在尝试使用LaTeX.hs作为指南,为pandoc破解新的文件格式编写器。广泛使用$$
运算符,但我无法在Haskell syntax documentation中找到它,甚至在其他项目中引用。这是一个例子:
let align dir txt = inCmd "begin" dir $$ txt $$ inCmd "end" dir
这几乎看起来像某种类型的连接运算符,但我无法弄清楚这与其他连接操作有何不同。这个运算符是什么,它是如何工作的,它在哪里记录?
答案 0 :(得分:5)
这是Hayoo或Hoogle的工作。它是Text.Pandoc.Pretty中定义的运算符。
($$) :: Doc -> Doc -> Doc infixr 5
a $$ b
将a
置于b
之上。
基本上,它会确保a
和b
位于不同的行上,从而产生更好的LaTeX输出:
\begin{dir}
txt
\end{dir}
答案 1 :(得分:4)
Pandoc在内部定义了自己的漂亮打印库,但操作(以及类型的名称Doc
)在Haskell漂亮的打印库中是标准的。 Pandoc还定义了其他魔术师,如vcat
,hsep
,<+>
等等;周围有许多漂亮的打印模块,但它们总是支持这些操作。
> import Text.PrettyPrint
> text "hello" <> text "world"
helloworld
> text "hello" <+> text "world"
hello world
> text "hello" $$ text "world"
hello
world
> text "hello" <+> text "world" $$ text "goodbye" <+> text "world"
hello world
goodbye world
粗略地说, ghci
在这里显示“文档会是什么样子”。