草庐IT

haskellers

全部标签

haskell - 从 Snap 访问 MongoDB

我正在尝试在拼接中使用mongodbhaskell驱动程序(snap驱动程序似乎因snap>0.5而损坏)访问mongo。这是目前为止我所得到的:testSplice::SpliceAppHandlertestSplice=dorecord我知道我需要在那里使用liftIO,因为mongo操作发生在IOmonad内部,我想把它拉回来。我的理解失败的地方是编译该拼接的结果:Couldn'tmatchexpectedtype`IOa0'withactualtype`Actionm0[Database.MongoDB.Document]'很抱歉发布“请将代码发送给我”问题,但我不知所措:我哪

haskell - 如何为 haskell 使用 mongoDB 绑定(bind)

我是Haskell的新手,但我觉得我对所有方面都有不错的理解。我目前正在尝试使用haskell的非官方mongoDB绑定(bind)。如果您查看此处的代码:http://github.com/srp/mongoDB/blob/master/Database/MongoDB.hsconnect::HostName->[ConnectOpt]->IOConnectionconnect=flipconnectOnPort(Network.PortNumber27017)如您所见,此方法返回/解析到一个IO连接。然而,所有实际与数据库交互的方法都采用简单的Connection作为参数。例如:d

json - Haskell - 将 BSON 映射到 JSON 的正确方法 - 将代码放在哪里

所以,我是Haskell及其社区的新手。我想制作一个mongodb支持的JSONAPI。Mongo和JSON非常适合(至少在节点中),因为它将文档存储在BSON中,这是“二进制json”,因此理论上很容易将其转换为JSON。经过多次错误,我终于写出了下面的代码。{-#LANGUAGEOverloadedStrings,ExtendedDefaultRules#-}--https://github.com/mailrank/aeson/blob/master/examples/Demo.hs--cabalinstallaeson--cabalinstallmongoDbimportDat

mongodb - Haskell MongoDB 驱动程序可能出现死锁

从ghc7.4升级到ghc7.6后,我注意到我的一些数据库调用速度降低了40倍。为了调查,我写了一些简单的东西来测试,我的代码基本上是:timeFetch::Pipe->UUID.UUID->IO()timeFetchpipeuuid'=dolrResultdoprintCrntTm"Righthasresult"timeFetchpipeuuid'Left_->printCrntTm"Lefterr"printCrntTm只是用描述字符串打印当前时间,uuidToBUUID是因为Data.UUID与Mongo的Data.BsonUUID类型不同。timeFetch本身无限期地递归调用

在Haskell中做Redux的最好方法是什么

我喜欢。Haskell及其类型系统,我发现在Haskell中写后端很有趣。但是,IMO我认为为前端切换另一个语言不是一个好主意。我想在前端和背面之间分享我的代码,并使用验证和类型,并且不要重复自己。寻找有关前端的一些架构,我知道flux然后redux我最喜欢Redux。在Haskell中编写Redux应用程序的最佳方法是什么?经过一些研究,我发现react-flux但是任何其他更像Redux的选项看答案好吧,我想最好的做你所打电话的方式reduxHaskell可能是使用与ConalElliott的想法一起使用的东西。这些想法非常强烈,其中一些想法的实现之一可能是Reflex-dom...这是它

ios - 建议将 Haskell 作为脚本引擎嵌入到 ARM 上的 iOS 应用程序中?

几个月前,我尝试将Haskell编译成一个iOS应用程序。不幸的是,我能找到的唯一稳定/维护实现是GHC,所以我尝试了某种交叉编译,但由于缺少ARM/iOS的RTS而失败了。我意识到这对我来说还不够容易。因此,我要求为此提供一些建议。我知道有iOS的补丁,但它不再继续了。我考虑过NHC/YHC,但我不能使用dropped实现。如果我想错了,请纠正我。 最佳答案 使用GHC-iPhone相当容易和ForeignFunctionInterface作为引用,DavidPollak有一个例子,实现了一个用Haskell编写的Lisp解释器,

sockets - Haskell 'timeout' 函数在应用于 'connect' 时不起作用

我的代码是这样的:connectFarEncipport=withSocketsDo$doaddrinfo如果无法连接到服务器,我希望超时两秒,但它不起作用。相反,抛出连接失败的异常,并退出程序。我应该如何处理这种情况以避免退出? 最佳答案 您从服务器得到了明确的答复,这产生了“连接被拒绝”。超时适用于您根本没有得到答复的情况。 关于sockets-Haskell'timeout'函数在应用于'connect'时不起作用,我们在StackOverflow上找到一个类似的问题:

multithreading - 在 Haskell 中使用共享套接字的多线程

在Haskell中,同一个套接字可以在两个线程之间共享吗?本质上,我想做的是创建一个线程来写入套接字,另一个线程从套接字读取。读取线程将是一个不断等待、监视和获取套接字生成的任何消息的循环。另一个线程(写入线程)将代码发送到套接字。请指教。 最佳答案 是的,这是允许的。 关于multithreading-在Haskell中使用共享套接字的多线程,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

sockets - Haskell tcp 服务器,fd 错误太大

我一直在尝试为Go客户端编写一个Haskell服务器。对于HaskellTCP服务器,我只是使用Network.Socket。每当我尝试运行hWaitForInput时,我都会收到此错误:fdReady:fdistoobig.这是服务器代码-connHandler::(Socket,SockAddr)->IO()connHandler(sock,_)=doputStrLn"StartingHandler"handleGo客户端正在接收并打印服务器的消息(“HelloClient!”)但是haskell服务器在打印“等待输入”后立即抛出错误 最佳答案

haskell - 使用网络管道时如何刷新网络流?

我正在尝试使用network-conduit作为(修补的)HaskellNet的后端IMAP.如何强制管道冲洗水流?这是requiredoperation,但在network-conduit中似乎没有这样的东西。 最佳答案 network-conduit应该在您每次向它发送ByteString时刷新流,特别是不包括缓冲,因为它会被blaze-之类的东西处理builder-conduit正交。您是否看到了与之相矛盾的行为? 关于haskell-使用网络管道时如何刷新网络流?,我们在Stac