小编Mar*_*her的帖子

如何在 IO 中包装 monadic 动作

我试图将ReaderT X IOmonad 视为 IO 以实现以下目标:

-- this is the monad I defined:
type Game = ReaderT State IO                                                                                                            

runGame :: State -> Game a -> IO a                                                                                                      
runGame state a = runReaderT a state                                                                                                    

readState :: Game State                                                                                                                 
readState = ask                                                                                                                         

-- some IO action, i.e. scheduling, looping, etc.                                                                                                                    
ioAction :: IO a -> IO ()
ioAction = undefined

-- this works as expected, but is rather ugly                                                                                                                                       
doStuffInGameMonad :: Game a -> Game ()                                                                                                 
doStuffInGameMonad gameAction …
Run Code Online (Sandbox Code Playgroud)

monads haskell monad-transformers reader-monad

4
推荐指数
1
解决办法
186
查看次数

使用psql的copy语句时如何压缩数据?

我的目标是有效地将大量数据导入 Postgres 数据库。原则上,原始数据可以压缩约 20 倍(例如使用 gzip)。

COPY声明似乎是批量导入的最佳选择。

除了ssl压缩(在数据加密后应用)之外,是否有一种方法可以压缩客户端和服务器之间传输的实际数据(内容),或者默认情况下是内置的?

非常感谢。

(应该没关系,但我正在使用 golang)。

postgresql gzip copy psql

2
推荐指数
1
解决办法
443
查看次数