Ho una lista di stringhe che voglio ordinare in due modi.elementi Ordina lista in Elixir Lang
- ordine alfabetico
- Con la lunghezza della stringa
Ho una lista di stringhe che voglio ordinare in due modi.elementi Ordina lista in Elixir Lang
per ordinare un elenco di stringhe in ordine alfabetico, si può semplicemente utilizzare Enum.sort/1
, che ordinare gli elementi per il loro ordine di default (che è ordine alfabetico per le stringhe).
iex> Enum.sort(["b", "aaa", "cc"])
["aaa", "b", "cc"]
Per ordinare un elenco da una proprietà diversa, come la lunghezza della stringa, è possibile utilizzare Enum.sort_by/2
, che prende una funzione mapper come secondo argomento. I valori verranno quindi ordinati in base al risultato di questa funzione applicata a ciascun elemento.
iex> Enum.sort_by(["b", "aaa", "cc"], &String.length/1)
["b", "cc", "aaa"]
Cosa intendi senza loop? L'operazione di ordinamento deve attraversare l'elenco. In ogni caso, forse Enum.sort/2 è quello che stai cercando? –
@ JoséValim Hai ragione. Ho modificato la domanda in modo che non sia fuorviante. Il modulo Enum ha tutto ciò di cui ho bisogno. Puoi postarlo come risposta? –