E 'possibile che data una stringa potrei ottenere ogni carattere che compone quella stringa?Haskell ottiene l'array di caratteri dalla stringa?
risposta
In Haskell, le stringhe sono solo (mi piace) elenchi di caratteri; puoi trovare la linea
type String = [Char]
da qualche parte nella fonte di ogni implementazione Haskell. Ciò rende banali le operazioni come trovare la prima occorrenza di un determinato carattere (elemIndex 'a' mystring
) o calcolare la frequenza di ciascun carattere (map (head &&& length) . group . sort
).
Per questo motivo, è possibile utilizzare anche la sintassi normale per gli elenchi con stringhe. In realtà, "foo"
è solo zucchero per ['f','o','o']
, che a sua volta è solo zucchero per 'f' : 'o' : 'o' : []
. Puoi modellare la corrispondenza, mappare e piegarli come preferisci. Ad esempio, se si desidera ottenere l'elemento nella posizione n
di mystring
, è possibile utilizzare mystring !! n
, a condizione che sia 0 <= n < length mystring
.
'somma mappa. gruppo. sort' è mal digitato per le stringhe. Forse intendevi qualcosa come 'map (head &&& length). gruppo. sort'? – hammar
@hammar: Grazie – fuz
Quindi dire che ho passato una stringa come parametro per una funzione, come potrei effettivamente accedere a ogni char? usando la mappa? – user997112
Il tipo string
è solo un alias per [Char]
quindi non è necessario fare nulla.
Prelude> tail "Hello"
"ello"
Prelude> ['H', 'e', 'l', 'l', 'o']
"Hello"
Prelude> "Hello" !! 4
'o'
Bene, la questione non dice che vuole un array:
import Data.Array
stringToArray :: String -> Array
stringToArray s = listArray (0, length s - 1) s
Questo è quello che mi è venuto in cerca di. In realtà, questa è la * corretta * risposta alla domanda, anche se non era ciò che l'OP intendeva. – setholopolus
- 1. Striscia di caratteri nascosti dalla stringa
- 2. Haskell sostituisce i caratteri nella stringa
- 3. stringa Rimuovere tra i 2 caratteri dalla stringa di testo
- 4. Ruby - come selezionare alcuni caratteri dalla stringa
- 5. Rimuovere i caratteri duplicati dalla stringa
- 6. C# ottiene una stringa dalla casella di testo
- 7. PHP ottiene una serie di numeri dalla stringa con intervallo
- 8. Taglia gli ultimi 4 caratteri dalla stringa?
- 9. Metodi per rimuovere caratteri specifici dalla stringa?
- 10. Come arrivare primi 5 caratteri dalla stringa
- 11. Rimozione di caratteri non consentiti dalla stringa XML C#
- 12. Come rimuovere i caratteri di controllo dalla stringa?
- 13. Rimuovi caratteri dalla fine di una stringa Scala
- 14. URLConnection non ottiene il set di caratteri
- 15. Owin ottiene parametri stringa di query
- 16. Rimuovi tutti i caratteri non ASCII dalla stringa
- 17. Regex per rimuovere tutti i caratteri speciali dalla stringa?
- 18. Java rimuovere i caratteri non latini-base dalla stringa
- 19. Scala: ottieni gli ultimi due caratteri dalla stringa
- 20. Come rimuovere i primi tre caratteri dalla stringa con C?
- 21. Il modo più veloce per rimuovere i caratteri dalla stringa
- 22. rimuovere i caratteri alfa e lo spazio bianco dalla stringa
- 23. Come rimuovere i caratteri speciali dalla stringa in Swift 2?
- 24. Sposta n caratteri dalla parte anteriore della stringa alla fine
- 25. Split stringa di caratteri
- 26. Funzione tokenizer stringa Haskell
- 27. Formattazione stringa a 10 caratteri
- 28. Stringa di indicizzazione come caratteri
- 29. stringa alla lista di caratteri
- 30. Android ottiene solo l'immagine dalla galleria
Sì. Penso che le stringhe siano una lista di caratteri in Haskell. –
Cosa vuoi fare con i personaggi? –
Sì, la funzione è chiamata 'id'. –