vorrei definire la seguente funzione:Come filtrare i valori "Niente" da Elm Array?
compactAndConvertToList : Array (Maybe String) -> List String
Questa funzione dovrebbe rimuovere tutti Nothing
apparizioni nella matrice data, e convertirlo in List
.
Mi è venuta in mente la soluzione di seguito, ma è un po 'sporca.
C'è un modo migliore per raggiungere questo obiettivo?
import Graphics.Element exposing (..)
import Array
model : Array.Array (Maybe String)
model = Array.fromList [ Just "Hello", Just "Stack", Nothing, Just "Overflow" ]
compactAndConvertToList : Array.Array (Maybe String) -> List String
compactAndConvertToList maybeStrings =
maybeStrings
|> Array.filter (\x -> x /= Nothing)
|> Array.map (Maybe.withDefault "")
|> Array.toList
main =
model
|> compactAndConvertToList
|> show
Grazie mille! Mi piace la prima versione con '>>'. Domande un po 'non correlate riguardo a 'Array' vs' List': Per costruire un modello che rappresenta una matrice bidimensionale (per [questo gioco] (http://fgcos.com/puzzle/barley-break), per esempio), è meglio usare 'Array' di' Array's? Non sono riuscito a trovare come ottenere un oggetto in un indice specifico in un 'Elenco'. –
Sì, sicuramente non vuoi liste per questo, cercare un elemento specifico è molto lento. Array of Arrays è la soluzione migliore. – jmite
Fresco. Grazie per l'aiuto! –