Microblog

Microblog

Fácil

Instruções

Você identificou uma lacuna no mercado de redes sociais para posts muito, muito curtos. Agora que o Twitter permite posts de 280 caracteres, as pessoas que querem atualizações rápidas nas redes sociais não estão sendo atendidas. Você decide criar sua própria rede social.

Para tornar seu produto notável, você o leva ao extremo e só permite posts de 5 caracteres ou menos. Qualquer post com mais de 5 caracteres deve ser truncado para 5.

Para permitir que seus usuários se expressem plenamente, você permite emoji e outros caracteres Unicode.

A tarefa é truncar strings de entrada para 5 caracteres.

Codificações de texto

Todo texto armazenado digitalmente precisa ser convertido em uma sequência de bytes. Existem 3 maneiras comumente usadas de mapear caracteres para bytes.

  • ASCII consegue codificar caracteres da língua inglesa. Todos os caracteres têm exatamente 1 byte.
  • UTF-8 é uma codificação de texto Unicode. Os caracteres ocupam entre 1 e 4 bytes.
  • UTF-16 é uma codificação de texto Unicode. Os caracteres têm 2 ou 4 bytes.

UTF-8 e UTF-16 são ambas codificações Unicode, o que significa que são capazes de representar uma enorme variedade de caracteres, incluindo:

  • Texto na maioria dos idiomas e sistemas de escrita do mundo
  • Textos históricos
  • Emoji

UTF-8 e UTF-16 são ambas codificações de comprimento variável, o que significa que caracteres diferentes ocupam quantidades diferentes de espaço.

Considere a letra 'a' e o emoji '😛'. Em UTF-16, a letra ocupa 2 bytes, mas o emoji ocupa 4 bytes.

O truque deste exercício é usar APIs pensadas em torno de caracteres Unicode (codepoints) em vez de codeunits Unicode.

Notas sobre Unicode no Tcl

Na versão 8.1, as strings do Tcl conseguiam lidar com caracteres Unicode sem esforço. Na época, isso era bastante inovador. Porém, conforme cada vez mais caracteres Unicode foram sendo criados, a capacidade do Tcl de lidar com eles ficou para trás.

A implementação interna do Tcl conseguia lidar apenas com caracteres Unicode de 16 bits, o que cobre somente os primeiros 65.526 caracteres. Esta página da wiki do Tcl, em especial a discussão sobre a linguagem "AndroWish", explica os motivos.

O Tcl 9.0 é a primeira versão capaz de lidar com o conjunto completo de caracteres Unicode. Por isso, este exercício só é resolvido (com facilidade) com o Tcl versão 9.0.

Editar via GitHub O link abre em uma nova janela ou aba
Tcl Exercism

Tudo pronto para começar Microblog?

Crie sua conta no Exercism para aprender e dominar Tcl com 135 exercícios e mentoria humana de verdade, tudo de graça.