Rutas
/
Tcl
Tcl
/
Ejercicios
/
Microblog
Microblog

Microblog

Fácil

Instrucciones

Has identificado una laguna en el mercado de las redes sociales para publicaciones muy muy cortas. Ahora que Twitter permite publicaciones de 280 caracteres, las personas que quieren actualizaciones rápidas en redes sociales no están bien atendidas. Decides crear tu propia red social.

Para que tu producto sea digno de mención, lo llevas al extremo y solo permites publicaciones de 5 caracteres o menos. Cualquier publicación de más de 5 caracteres debería truncarse a 5.

Para permitir que tus usuarios se expresen plenamente, admites emojis y otros caracteres Unicode.

La tarea consiste en truncar los strings de entrada a 5 caracteres.

Codificaciones de texto

El texto almacenado digitalmente tiene que convertirse en una serie de bytes. Hay 3 formas de asignar caracteres a bytes que se usan habitualmente.

  • ASCII puede codificar caracteres de la lengua inglesa. Todos los caracteres ocupan precisamente 1 byte.
  • UTF-8 es una codificación de texto Unicode. Los caracteres ocupan entre 1 y 4 bytes.
  • UTF-16 es una codificación de texto Unicode. Los caracteres ocupan 2 o 4 bytes.

UTF-8 y UTF-16 son ambas codificaciones Unicode, lo que significa que son capaces de representar una enorme variedad de caracteres, entre los que se incluyen:

  • Texto en la mayoría de las lenguas y sistemas de escritura del mundo
  • Texto histórico
  • Emojis

UTF-8 y UTF-16 son ambas codificaciones de longitud variable, lo que significa que distintos caracteres ocupan distintas cantidades de espacio.

Fíjate en la letra «a» y en el emoji «😛». En UTF-16, la letra ocupa 2 bytes, pero el emoji ocupa 4 bytes.

El truco de este ejercicio consiste en usar APIs diseñadas en torno a caracteres Unicode (puntos de código) en lugar de unidades de código Unicode.

Notas de Tcl sobre Unicode

En la versión 8.1, los strings de Tcl ya podían manejar caracteres Unicode sin ningún problema. En aquel momento, aquello era toda una revolución. Sin embargo, a medida que se fueron creando más y más caracteres Unicode, la capacidad de Tcl para manejarlos se fue quedando atrás.

La implementación interna de Tcl solo podía manejar caracteres Unicode de 16 bits, lo que únicamente abarca los primeros 65 526 caracteres. Esta página de la wiki de Tcl, en particular el debate sobre el lenguaje «AndroWish», explica los motivos.

Tcl 9.0 es la primera versión que puede manejar el conjunto completo de caracteres Unicode. Por consiguiente, este ejercicio solo se resuelve (con facilidad) con la versión 9.0 de Tcl.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Tcl Exercism

¿Listo para empezar Microblog?

Regístrate en Exercism para aprender y dominar Tcl con 135 ejercicios y mentoría humana real, todo gratis.