In Erlang quando si dispone di un elenco di caratteri stampabili, è una stringa, ma una stringa è anche un elenco di elementi e tutte le funzioni di un elenco possono essere applicate a una stringa. Idealmente, la struttura dei dati: la stringa non esiste in erlang.
Parte del mio codice deve essere certa che qualcosa non è solo una lista, ma è una stringa. (Una vera stringa). Ha bisogno di separare gli elenchi, ad es. [1,2,3,a,b,"josh"]
, da stringa ad es. "Muzaaya"
. L'espressione di guardia is_list/1
dirà true
per entrambe le stringhe e gli elenchi. Non esiste una guardia del tipo
e quindi questo significa che ho bisogno di uno snippet di codice per accertarmi che i miei dati siano una stringa. Una stringa in questo caso è un elenco di solo stampabili (in ordine alfabetico, in entrambi i casi, in alto e in basso) e può contenere numeri, ad esempio is_string/1
"Muzaaya2536 618 Joshua"
. Ho bisogno di uno snippet di codice (Erlang) che controlli per me e garantisca che la variabile sia una stringa, non solo una lista. graziedifferenziare una stringa da un elenco in Erlang
risposta
si hanno due funzioni nel modulo io_lib
che possono essere utili: io_lib:printable_list/1
e io_lib:printable_unicode_list/1
quale test se l'argomento è una lista di stampabili latin1 o unicode rispettivamente caratteri.
grazie a @rvirding, questa è una soluzione più standard! –
utilizzando l'isprint (3) definizione di caratteri stampabili -
isprint(X) when X >= 32, X < 127 -> true;
isprint(_) -> false.
is_string(List) when is_list(List) -> lists:all(fun isprint/1, List);
is_string(_) -> false.
non sarà in grado di usarlo come una guardia, però.
grazie a butter71, anche questo funziona molto bene ! –
Funziona con il set di caratteri Latin1, ma potrebbe essere importante notare che rifiuterà i codici carattere Unicode. – goncalotomas
- 1. Rimuovi elementi duplicati da un elenco in Erlang
- 2. Determinare se un elemento è una stringa o un elenco in Erlang
- 3. convertire un intero in una stringa in Erlang
- 4. Creare un elenco da una stringa in Clojure
- 5. Tronca un float in Erlang
- 6. Erlang: ritorno da una funzione
- 7. Python: come verificare una stringa per sottostringhe da un elenco?
- 8. Cerca un elenco utilizzando una stringa
- 9. HMAC SHA256 digest esadecimale di una stringa in Erlang, come?
- 10. Come creare un elenco di 1000 numeri casuali in Erlang?
- 11. Come faccio a codificare XML una stringa in Erlang?
- 12. Appiattisci un elenco di elenchi annidati in Erlang
- 13. Convertire Elenco di stringa in una stringa separati da un delimitatore
- 14. Elenco binario in lista stringhe - Erlang
- 15. Aggiungere una stringa a un elenco
- 16. Converti un elenco di elenchi in una stringa delimitata
- 17. Conversione di un elenco generico in una stringa CSV
- 18. Conversione di una stringa in un elenco in Python
- 19. Slice assegnazione con una stringa in un elenco
- 20. Aggiunta di una stringa davanti a una stringa per ogni elemento in un elenco in python
- 21. controlla se una stringa si trova in un elenco di stringhe da 2 GB in python
- 22. Come trovare la somma di una stringa in un elenco
- 23. Rubino: È una stringa in un elenco di valori
- 24. Come creare un elenco <T> da una stringa separata da virgole?
- 25. Strategia per differenziare TouchUp da TouchLeave e TouchDown da TouchEnter?
- 26. Come analizzare una stringa che rappresenta un elenco annidato in un elenco effettivo?
- 27. Erlang - custodia da costruzione
- 28. Erlang elenco di elementi record di
- 29. selezionare un elemento da una colonna personalizzata da un elenco
- 30. Rimuovi tutte le occorrenze di parole in una stringa da un elenco python
Vedere anche http://stackoverflow.com/questions/2479713/determining-if-an-item-is-a-string-or-a-list-in-erlang – legoscia