我一直在使用((:[]) <$> xs)
,但如果有更明确的方式我会喜欢使用它。
编辑:这么多好人答案!我认为我不能接受,因为他们都很好。
答案 0 :(得分:12)
我相信map return
或map pure
足够好了。
答案 1 :(得分:7)
也许这个?
map (\x -> [x]) xs
你可以使用我认为的任何仿函数,因此这对于仅仅列表来说会更加独特。
答案 2 :(得分:4)
split包提供了一个(Data.List.Split。)chunksOf函数,其名称为IMO,比各种地图解决方案更有意义(即使它们更具惯用性。)
答案 3 :(得分:4)
您还可以使用列表理解:
[ [x] | x <- theList]
对于这样一个简单的例子可能有点过分,但根据你的上下文,也许你可以将这个步骤与单例列表的进一步处理合并:
[f [x] + 13 | x <- theList]
答案 4 :(得分:2)
Tong-in-cheek版本:
import Data.List
groupBy (const . const False) xs
答案 5 :(得分:1)
使用do
表示法:
do { x <- xs; return [x] }