2010-02-03 4 views
5

Alla ricerca di una funzione built-in che farà il seguente:In Haskell, esiste una funzione integrata che crea un elenco di un elemento?

mklist x = [x] 

Il vantaggio è che posso usarlo in una composizione per creare una lista di un elemento. Comprendi che (replica 1) è disponibile ma esiste una funzione più diretta? Sarebbe utile in situazioni come questa:

["Alice", "Bob", "Charlie"] >>= mklist . ("Hello " ++) 

risposta

11

Monadica return:

return x 

Oppure:

(:[]) x 

E 'meno caratteri, ma più l'utilizzo il tasto shift, quindi potrebbe essere più difficile da genere.

+0

Oh. Destra. Duh. Grazie. – me2

+0

:-) Ovviamente il tuo esempio potrebbe essere facilmente fatto usando 'map', ma suppongo che il tuo scenario reale sia più complesso. –

+5

'pure' da Control.Applicativo funziona anche. Quelle sono quattro lettere non spostate! Come con 'return', anche gli errori di tipo possono essere più complicati. – yatima2975