Haskell read对浮点数有点过于严格:
$ ghci
GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help
Prelude> read "-1E34" :: Double
-1.0e34
Prelude> read "-1.E34" :: Double
*** Exception: Prelude.read: no parse
Prelude>
Run Code Online (Sandbox Code Playgroud)
是否有接受第二种形式的读取版本?它在物理科学中很常见.例如,Fortran读取和写入此类表单.
Haskell不支持的另一个例子是"0.1"表示"0.1".这个更为常见.我只是不想转换输入ascii文件....
我以为这很简单
%.png: ../figs/%.png
convert $? -resize '40%' $@
Run Code Online (Sandbox Code Playgroud)
也就是说,我想从 "../figs/" 中的相应图像生成此目录中的图像。
但是,上述导致了无限的依赖链,因为../figs/foo.png匹配%.png并因此 make 尝试检查../figs/../figs/foo.png,匹配%.png并因此 make 尝试检查。. . 最终,以“文件名太长”停止。
我肯定错过了什么。什么是干净的解决方案?
我是 Haskell 堆栈的新手,想知道如何找出包含特定模块的包的名称。
目前,我想使用Data.Tuple.Extra(fst3)(https://hackage.haskell.org/package/extra-1.7.9/docs/Data-Tuple-Extra.html)并想知道我应该在下面写什么
$ stack install ????
Run Code Online (Sandbox Code Playgroud)
我已经安装了该tuple软件包,但是它似乎不包含该Extra部分。
到目前为止,我发现的有关安装软件包的所有 Internet 资源都说“要使用 Blahblah.Anything.Something,您需要安装该foofoo软件包”。. . 怎么会知道呢?我搜索了 Stackage,但它只显示了 的文档,Data.Tuple.Extra我仍然找不到包的名称。
编辑:正如KABuhr在她/他的回答中指出的那样,stack install对于上述情况是错误的命令。使用stack build来代替。