相关疑难解决方法(0)

为什么我们需要Control.Lens.Reified?

为什么我们需要Control.Lens.Reified?有什么理由我不能Lens直接放入容器吗?reify无论如何,意味着什么?

haskell lenses

11
推荐指数
2
解决办法
244
查看次数

Haskell中的Unsequence Monad函数

我在设计Haskell sequence函数的反函数时遇到了一些麻烦,Hoogle告诉我该函数尚不存在.这是它的行为方式:

ghci> sequence [Just 7, Just 8, Just 9]
Just [7,8,9]
ghci> sequence [getLine, getLine, getLine]
hey
there
stack exchange
["hey","there","stack exchange"] :: IO [String]
Run Code Online (Sandbox Code Playgroud)

我的问题是制作这样的函数:

unsequence :: (Monad m) => m [a] -> [m a]
Run Code Online (Sandbox Code Playgroud)

所以它的行为如下:

ghci> unsequence (Just [7, 8, 9])
[Just 7, Just 8, Just 9]
ghci> sequence getLine
hey
['h','e','y'] :: [IO Char] --(This would actually cause an error, but hey-ho.)
Run Code Online (Sandbox Code Playgroud)

我实际上并不知道这是否可能,因为我会在某些时候逃避monad,但我已经开始了,虽然我不知道如何为这个递归函数设置断点:

unsequence m = (m >>= return . head) : unsequence (m >>= …
Run Code Online (Sandbox Code Playgroud)

monads reverse haskell function list

9
推荐指数
2
解决办法
433
查看次数

标签 统计

haskell ×2

function ×1

lenses ×1

list ×1

monads ×1

reverse ×1