我一直在使用
编辑:伙计们提供了许多好答案!由于它们都很好,所以我不确定能否接受其中一个。
((:[]) <$> xs)
,但如果有更明确的方法,我很乐意使用。编辑:伙计们提供了许多好答案!由于它们都很好,所以我不确定能否接受其中一个。
我认为map return
或map pure
已经足够好了。
map (\x -> [x]) xs
我认为您的代码可以适用于任何函数对象,但对于列表来说更符合惯用语。
split包提供了一个(Data.List.Split.)chunksOf函数,它的名称在我看来比各种map解决方案更有意义(即使它们更具惯用性)。
你也可以使用列表推导式:
[ [x] | x <- theList]
[f [x] + 13 | x <- theList]
半开玩笑版本:
import Data.List
groupBy (const . const False) xs
do
符号表示:do { x <- xs; return [x] }
(:[])
比使用return
更清晰且字符更少。 - daniel gratzerpure
更短。 - is7s<$>
,那么你已经在导入Applicative
了。 - Ben