最小的工作示例:
import
Graphics.EasyPlot
plot X11 sin
在我的系统上,正如预期的那样,正弦函数的图表出现在窗口中,GHCi显示True
(IO Bool
返回plot
的值,表示成功的情节)并出现一个新的命令提示符。
出乎意料的是,当我输入时,在命令提示符下没有文字出现,直到我按下回车键。然后我输入的文本变得可见,GHCi按预期对我输入的任何命令作出反应。当我在下一个命令提示符下键入时,会发生同样的事情。到目前为止,我已经找到了两种让GHCi恢复正常的方法:
:l
以加载文件。为什么会发生这种情况,我该如何预防?
不妨碍行为的事情:
plot
函数调用main
并使用GHCi中的:main
命令运行它。PNG
终端而不是窗口绘制到文件。plot'
代替plot
。没有让GHCi恢复正常的事情:
:m
以卸载所有模块。答案 0 :(得分:3)
我可以重现你描述的内容(ghc-7.8.4,fedora 21,x86_64,xmonad)。
它不是一个ghci功能,你在shell中获得相同的行为。
gnuplot -e "set terminal x11 persist ; plot sin(x)"
(这是(大致)EasyPlot发送给shell的命令, 比照https://hackage.haskell.org/package/easyplot-1.0/docs/src/Graphics-EasyPlot.html#exec)
出现Plot窗口,出现shell提示符,但shell(似乎)没有工作。
你可以将鼠标指针移动到绘图窗口,然后再移回shell - 这似乎可以使它工作。