【发布时间】:2013-07-03 22:17:01
【问题描述】:
我一直在使用((:[]) <$> xs),但如果有更清晰的方法,我很乐意使用它。
编辑:这么多好答案,伙计们!我不认为我可以接受,因为它们都很好。
【问题讨论】:
我一直在使用((:[]) <$> xs),但如果有更清晰的方法,我很乐意使用它。
编辑:这么多好答案,伙计们!我不认为我可以接受,因为它们都很好。
【问题讨论】:
诙谐的版本:
import Data.List
groupBy (const . const False) xs
【讨论】:
使用do 表示法:
do { x <- xs; return [x] }
【讨论】:
您也可以使用列表推导:
[ [x] | x <- theList]
对于这样一个简单的示例来说可能有点矫枉过正,但根据您的上下文,也许您可以将此步骤与对单例列表的进一步处理合并:
[f [x] + 13 | x <- theList]
【讨论】:
split 包提供了一个 (Data.List.Split.)chunksOf 函数,其名称为 IMO,比各种地图解决方案更有意义(即使它们更惯用。)
【讨论】:
我相信map return 或map pure 已经足够好了。
【讨论】:
(:[]) 比 return & less characters 更清晰
pure 更短。
pure 非常清晰、简洁,导入Applicative 几乎不是问题,不是吗?
<$>,那么您已经在导入Applicative。
也许是这个?
map (\x -> [x]) xs
你的可以在任何我认为的函子上工作,所以这对于列表来说会更符合规范。
【讨论】: