我有一个功能seperateFuncs,使得
seperateFuncs :: [a -> b] -> (a -> [b])
seperateFuncs xs = \x -> map ($ x) xs
Run Code Online (Sandbox Code Playgroud)
我想知道反过来是否存在,即是否存在功能
joinFuncs :: (a -> [b]) -> [a -> b]
Run Code Online (Sandbox Code Playgroud)
我认为不是(主要是因为列表不是固定的长度),但也许我会被证明是错的.那么问题是有一些数据类型f有一个函数::(a - > fb) - > f(a - > b)?
我有一个功能定义
maybeToList :: (a -> Maybe a) -> a -> [a]
maybeToList f x = x : maybe [] (maybeToList f) (f x)
Run Code Online (Sandbox Code Playgroud)
这个功能看起来很明显,我不敢相信它不标准.它是否在某个模块中定义(我已经检查过Data.Maybe)?