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]] -