我正在尝试为在 Haskell 中使用 Gnuplot 绘制的图添加标题。虽然程序在它创建的独立窗口中生成一个图形,但我似乎无法让它响应标题函数。我是否错误地使用了标题功能?
我正在使用堆栈,与
- only "-gnuplot" added to the "dependencies:" section of package.yaml
- resolver: lts-15.7 in an unmodified stack.yaml.
Run Code Online (Sandbox Code Playgroud)
在运行 Linux Mint 19 的计算机上。弹出窗口的代码和屏幕截图是:
module Main where
import Graphics.Gnuplot.Advanced
import Graphics.Gnuplot.Plot.TwoDimensional as P2D
import Graphics.Gnuplot.Graph.TwoDimensional as G2D
import Graphics.Gnuplot.Terminal.X11 as X11
zeroToTen = [0.0, 0.1 .. 10.0 :: Double]
main :: IO ()
main = do
plot (X11.title "My Title" X11.cons) (P2D.function G2D.lines zeroToTen sin)
_ <- getLine
return ()
Run Code Online (Sandbox Code Playgroud)
我正在努力了解如何IORefs真正使用,并且我无法按照我在https://www.seas.upenn.edu/~cis194/spring15/lectures/12-unsafe.html上找到的示例代码进行操作
newCounter :: IO (IO Int)
newCounter = do
r <- newIORef 0
return $ do
v <- readIORef r
writeIORef r (v + 1)
return v
printCounts :: IO ()
printCounts = do
c <- newCounter
print =<< c
print =<< c
print =<< c
Run Code Online (Sandbox Code Playgroud)
当printCounts执行" c <- newCounter"时,为什么不能c在newCounter" return $ do"块中得到完成工作的结果,这似乎应该IO 0在第一次被调用时被分配给常量" "然后永远不会改变?相反,c似乎被赋予了在" return $ do"块中定义的函数,然后每次printCounts到达另一个" print =<< c …