是否有用于绘制类似于MATLAB,scilab或matplotlib的绘图的Haskell库?它们都有非常简单的接口,就像状态机一样工作:
plot(xs, ys)
show() -- opens window with plot
Run Code Online (Sandbox Code Playgroud)
在窗口中显示绘图并能够将它们写入磁盘会很好.
在Haskell中是否有一些递归目录walker所以我可以编写类似的东西
listing <- walkDir "/tmp"
Run Code Online (Sandbox Code Playgroud)
我不想写我自己的.我可以从cabal安装一些依赖,但我希望它是跨平台的(至少Linux和Windows).
Java 内存可见性文档说:
在每次后续读取同一字段之前,会发生对易失性字段的写入.
我很困惑多线程背景下的后续意义.这句话是否意味着所有处理器和内核都有一些全局时钟.那么例如我在某个线程的循环c1中为变量赋值,然后第二个线程能够在后续循环c1 + 1中看到该值?
haskell中是否有一些函数在一个列表遍历(这里是两个)中求值(过滤p xs,filter(not.p)xs)或者在这种函数的函数式编程中是否有一些通用名称?
我正在编写应用程序,它将通过HTTP下载一些文件.到目前为止,我使用以下代码片段来下载页面正文:
import network.HTTP
simpleHTTP (getRequest "http://www.haskell.org/") >>= getResponseBody
Run Code Online (Sandbox Code Playgroud)
它工作正常,但无法通过HTTPS协议建立连接.所以为了解决这个问题,我已经切换到HTTP-Conduit,现在我正在使用以下代码:
simpleHttp' :: Manager -> String -> IO (C.Response LBS.ByteString)
simpleHttp' manager url = do
request <- parseUrl url
runResourceT $ httpLbs request manager
Run Code Online (Sandbox Code Playgroud)
它可以连接到HTTPS,但出现了令人沮丧的新问题.大约每五个连接失败,异常:
getpics.hs: FailedConnectionException "i.imgur.com" 80
Run Code Online (Sandbox Code Playgroud)
我确信这是HTTP-Conduit问题,因为network.HTTP在同一组页面上工作正常(不包括https页面).
有没有人遇到过这样的问题并且知道解决方案或更好(并且简单,因为这是一个简单的任务,不应该只需要几行代码)替代Conduit库?
C++ 11有关键字thread_local.我想知道这个关键字是否只能使用标准库(std :: thread)创建的线程按预期工作,或者保证可以与其他线程库一起使用,例如Windows CreateThread函数或Unix pthread.
线程扩展存储类修饰符用于声明线程局部变量.对于C++ 11及更高版本中的便携式等效项,请将thread_local存储类说明符用于可移植代码.在Windows上,thread_local是用__declspec(thread)实现的.
因此,thread_local在MS Visual Studio中按预期工作.我仍然想知道其他编译器和平台的情况是否属实.
是否可以将这两行排成一行:
main = do line <- getLine
let result = words line
Run Code Online (Sandbox Code Playgroud)
我的意思是像非monadic代码
结果=单词getLine
在我看来,这将提高可读性.
如何在方程式右侧下面的行中使用符号"fibs",尽管它还没有定义:
let fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
Run Code Online (Sandbox Code Playgroud) 我知道要调试脚本我可以发出命令
set -x
Run Code Online (Sandbox Code Playgroud)
在第一行。问题在于,当脚本启动其他一些脚本时,它们不会继承此设置。所以我的问题是是否有可能为 shell 和所有子 shell 或某些脚本和它启动的所有脚本全局设置这个标志?
在C++ 11项目中,我必须使用外部C库.此库主头文件定义
typedef uint16_t char16_t;
Run Code Online (Sandbox Code Playgroud)
因为它包含这个库的C++程序的编译失败,消息:
redeclaration of C++ built-in type ‘char16_t’
Run Code Online (Sandbox Code Playgroud)
我唯一的想法是重新打包整个库,但因为char16_t
在这个库中普遍存在,所以非常耗时(如果可能的话).是否有一些明智的方法来处理这个问题?
编辑:
我还有另一个想法是删除有问题的行并用uint16_t替换每个char16_t,但我必须修改第三方库头,我不是特别喜欢这个想法(可能有更多类似的错误).所以我也想知道在包含头文件时是否有一些处理C++和C之间不兼容问题的好方法.