Supposons que j'ai une liste de tuples qui ressemblent à l'exemple suivant :
[(5, "a"), (1, "c"), (7, "d")]
dans Elm, comment faire pour trier la liste dans l'ordre croissant de leurs premiers éléments afin d'obtenir le résultat suivant ?
[(1, "c"), (5, "a"), (7, "d")]
Utilisation de la Documentation sur la liste Elm il apparaît que le sortBy
y sortWith
seront utiles dans ce cas. Ma tentative d'implémentation est la suivante :
maxTuples : Tuple(a, b) -> Tuple(a, b) -> Tuple(a, b)
maxTuples t1 t2 =
case compare t1 t2 of
((Tuple.first t1) >= (Tuple.first t2)) -> GT
_ -> LT
sortByFirst : List (Tuple (a, b)) -> List (Tuple (a, b))
sortByFirst lst =
List.sortWith maxTuples lst
Cependant, j'obtiens des erreurs de compilation de la nature suivante :
I ran into something unexpected when parsing your code!
99| ((Tuple.first t1) >= (Tuple.first t2)) -> GT
^
I am looking for one of the following things:
an upper case name
Mon intuition me dit que le compilateur recherche GT
/ LT
/ EQ
par l'API de List
mais si c'est le cas, je ne vois pas comment nous pourrions utiliser l'un ou l'autre des éléments suivants sortBy
o sortWith
pour trier une liste de Tuples dans Elm par le premier indice de chaque élément.