我想从列表中的每个元素创建一个单例列表,其类型声明为
single :: [a] -> [[a]]
。例如single [a,b,c] = [[a],[b],[c]]
我想知道是否有一种简单的方法可以做到这一点,例如使用与我想要的相反的concat
。
答案 0 :(得分:5)
仅使用fmap return
,因为return x :: [a] == [x]
和fmap
列表只是map
,但fmap
是首选,因为它更通用。
事实上,你可以尽可能地使用
fmap pure :: (Functor f, Applicative g) => f a -> f (g a)