¿Es posible si con una cadena puedo obtener a cada personaje componiendo esa cuerda?Haskell obtiene matriz de caracteres de la cadena?
Respuesta
En Haskell, las cadenas son solo (me gustas) listas de caracteres; puede encontrar la línea
type String = [Char]
en algún lugar de la fuente de cada implementación de Haskell. Eso hace que tareas como encontrar la primera ocurrencia de un cierto carácter (elemIndex 'a' mystring
) o calcular la frecuencia de cada carácter (map (head &&& length) . group . sort
) sean triviales.
Debido a esto, también puede usar la sintaxis habitual para listas con cadenas. En realidad, "foo"
es solo azúcar para ['f','o','o']
, que a su vez es solo azúcar para 'f' : 'o' : 'o' : []
. Puedes emparejar patrones, mapearlos y doblarlos como quieras. Por ejemplo, si desea obtener el elemento en la posición n
de mystring
, puede usar mystring !! n
, siempre que 0 <= n < length mystring
.
'map sum. grupo. sort' está mal escrito para cadenas. Quizás quisiste decir algo como 'map (head &&& length). grupo. ordenar'? – hammar
@hammar: Gracias – fuz
Digamos que pasé una cadena como parámetro de una función, ¿cómo accedería a cada char? usando el mapa? – user997112
El tipo string
es solo alias para [Char]
por lo que no necesita hacer nada.
Prelude> tail "Hello"
"ello"
Prelude> ['H', 'e', 'l', 'l', 'o']
"Hello"
Prelude> "Hello" !! 4
'o'
Bueno, la pregunta qué dice que quiere una matriz:
import Data.Array
stringToArray :: String -> Array
stringToArray s = listArray (0, length s - 1) s
Esto es lo que vine buscando. De hecho, esta es la respuesta * correcta * a la pregunta, incluso si no era lo que el OP pretendía. – setholopolus
- 1. matriz de caracteres a cadena hexadecimal C++
- 2. tipo de cadena .NET frente a la matriz de caracteres
- 3. Inicialización matriz de caracteres con la cadena más pequeña literal
- 4. Obtiene cada n-elementos de la matriz
- 5. Convirtiendo de cadena de caracteres a una matriz de uint8_t?
- 6. Separar cadena en una matriz de cadenas de caracteres
- 7. cómo inicializar matriz de caracteres de una cadena
- 8. ejecución de la matriz de ejecución haskell
- 9. Obtiene el tamaño de la cadena std :: string en bytes
- 10. Obtiene la clave de matriz de forma recursiva y crea una cadena separada de subrayado
- 11. URLConnection no obtiene el juego de caracteres
- 12. ¿Está almacenando una matriz o cadena de caracteres muy grande?
- 13. inicializador cadena literal para una matriz de caracteres
- 14. caracteres cadena de acceso a JavaScript como matriz
- 15. Al insertar una cadena en una matriz dentro de una matriz se obtiene un resultado inesperado
- 16. Convierta una lista de caracteres (o matriz) en una cadena
- 17. Convirtiendo una cadena en una matriz de caracteres
- 18. Separar cadena en una matriz de caracteres en C++
- 19. asignar una matriz de caracteres a una cadena literal - C++
- 20. convertir una cadena en una matriz de caracteres
- 21. ¿cómo lista (cadena) divide la cadena en una matriz de caracteres en python?
- 22. delete [] Matriz de caracteres
- 23. Asignación de una cadena de caracteres a una matriz de caracteres
- 24. cadena Haskell a la lista
- 25. Obtiene la cadena del selector jQuery actual?
- 26. inicialización de matriz de caracteres con espacios
- 27. Matriz asociativa de la cadena
- 28. Haskell y cadena de longitud
- 29. Convertir matriz int a matriz de caracteres
- 30. Convertir matriz TCHAR en matriz de caracteres
Sí. Creo que las cadenas son una lista de char en Haskell. –
¿Qué quieres hacer con los personajes? –
Sí, la función se llama 'id'. –