Oigo que Data.Text
va a reemplazar String
s en futuras versiones de Haskell. Un problema que tengo con esto es que (++)
se define solo para listas. Para concatenar dos Text
s, necesito utilizarForma estándar de unir dos Data.Texts sin `mappend`
text1 `mappend` text2
que obtiene lo más detallada rápidamente. Idealmente, me gustaría poder usar ++
en estos Text
s, pero si no, ¿cuál es otra alternativa? Podría definir mi propio operador infijo, pero me gustaría una forma estándar de hacerlo.
Es un operador mal llamado. '<>' tiene la semántica de "no igual a". Hubiera sido más agradable generalizar '++' para trabajar en todos los Monoids. –
<> fue elegido porque ya estaba siendo utilizado por las bonitas bibliotecas de impresión con semántica monoidal, y es la opción menos molesta que no rompe el código existente, o tiene sesgos impares. Por otro lado, la generalización (++) no se puede hacer de una manera que resulte en buenas bibliotecas de impresión bonitas debido al nivel de precedencia, y solía tener otro significado antes de haskell 98, cuando se usaba para lo que llama a mplus ahora. Si evitáramos cosas con significados en otros idiomas, ¡no tendríamos operadores! Los operadores <<, >>, -,!,%,: Etc. todos tienen otra semántica en otros idiomas también. –
Extraño, estoy tratando de usarlo pero obtengo 'No en el alcance: '<>' '. GHC 7.10.3 – klappvisor