1

我尝试图表中的斐波那契演示, 但正如他们的许多示例所做的那样,它需要编译,然后该mainWith函数采用各种选项,包括 SVG 输出的文件名。我想从 GHCi 中获得与 .svg 输出文件相同的结果,而无需先编译。

虽然这个问答是关于同一个问题,但那里的解决方案使用似乎不再有效的 API 调用,例如SizeSpec2DmkSizeSpec

4

1 回答 1

2

您可以:load.lhs文件放入 GHCi,然后使用:main命令运行它。

$ cd $(mktemp -d)                                                                                                                                                                                                                     

$ wget -q https://archives.haskell.org/projects.haskell.org/diagrams/gallery/FibCalls.lhs

$ stack ghci --package diagrams-lib diagrams-svg diagrams-contrib

λ> :load FibCalls.lhs
[1 of 1] Compiling Main             ( FibCalls.lhs, interpreted )
Ok, one module loaded.

λ> :main -o out.svg

λ> :quit
Leaving GHCi.

$ head -n2 out.svg 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
于 2018-03-26T22:39:59.297 回答