lifting

    3热度

    1回答

    如果我有以下两种Kleisli箭头: stdoutProcessA :: Kleisli Maybe String (IO String) writeToFileA :: Kleisli Maybe (FilePath, String) (IO()) 我希望能够写成才,如: compile = proc src -> do output <- stdoutProcessA -< "

    13热度

    1回答

    我试图构造类型的函数: liftSumthing :: ((a -> m b) -> m b) -> (a -> t m b) -> t m b 其中t是一个单子转换。具体而言,我有兴趣这样做: liftSumthingIO :: MonadIO m => ((a -> IO b) -> IO b) -> (a -> m b) -> m b 我摆弄了一些哈斯克尔魔法库,但无济于事。我如何获

    3热度

    2回答

    我已经意识到,当我嵌套数据结构时,我一直在手动编写代码来深入研究它们。就像这样: --one level Prelude> map (*2) [1,2,3] [2,4,6] --nested two levels Prelude> let t2 = map $ map (*2) Prelude> t2 [[1,2,3],[4,5,6]] [[2,4,6],[8,10,12]] -