Supponiamo che si desideri map
su una raccolta, ma si raccolgano solo i risultati della funzione mappata se il valore mappato soddisfa determinati criteri. Attualmente sto facendo questo in quanto tale:Idioma di Haskell per la mappa 'selettiva'
func = foldl (\acc x, -> (maybeGrab x):acc) []
maybeGrab a
| a > 5 = [someFunc a]
| otherwise = []
Anche se questo funziona, io sono sicuro che ci sia un '/ diritto comune/più riconoscibile' modo più idiomatico per fare questo.
Il filtro non fa ciò che ti serve? O forse mapMaybe da Data.Maybe? –
@JeffFoster: 'mapMaybe' è la risposta corretta. Dovresti postarlo come risposta in modo da poterlo invogliare. – Chuck
Sì, Jeff ha ragione. La prossima risposta ha il mio voto. –