2013-07-05 18 views

Antwort

7

Vielleicht das?

map (\x -> [x]) xs 

Ihre können auf jedem functor arbeiten, ich denke, so würde dies für nur Listen mehr idomatic sein.

12

Ich glaube, map return oder map pure sind gut genug.

+4

Ich würde argumentieren, dass '([])' ist klarer als Rückkehr und weniger Zeichen – jozefg

+2

@jozefg 'pure' ist noch kürzer. – is7s

+0

Wahr, aber erfordert und importieren – jozefg

4

Die Split-Paket bietet eine (Data.List.Split.) ChunksOf Funktion, deren Name, IMO, aussagekräftiger als die verschiedenen Kartenlösungen (auch wenn sie mehr idiomatische sind.)

4

Sie auch verwenden können, Liste Verständnis:

[ [x] | x <- theList] 

vielleicht Overkill für ein solches einfaches Beispiel, aber je nach Kontext, vielleicht können Sie diesen Schritt mit einigen Weiterverarbeitung der Singleton-Listen zusammen:

[f [x] + 13 | x <- theList] 
1

Mit do Notation:

do { x <- xs; return [x] } 
2

Zunge-in-cheek Version:

import Data.List 

groupBy (const . const False) xs 
Verwandte Themen