Tracks
/
Tcl
Tcl
/
Übungen
/
Microblog
Microblog

Microblog

Einfach

Anleitung

Du hast eine Lücke im Markt für soziale Medien für sehr, sehr kurze Beiträge entdeckt. Jetzt, wo Twitter Beiträge mit 280 Zeichen erlaubt, werden Leute, die schnelle Updates in sozialen Medien wollen, nicht mehr bedient. Du beschließt, dein eigenes soziales Netzwerk zu bauen.

Damit dein Produkt bemerkenswert wird, machst du es extrem und erlaubst nur Beiträge mit 5 oder weniger Zeichen. Beiträge mit mehr als 5 Zeichen sollten auf 5 gekürzt werden.

Damit sich deine Nutzer voll ausdrücken können, erlaubst du Emoji und anderes Unicode.

Die Aufgabe ist, eingegebene Strings auf 5 Zeichen zu kürzen.

Textkodierungen

Text, der digital gespeichert wird, muss in eine Folge von Bytes umgewandelt werden. Es gibt 3 Arten, Zeichen auf Bytes abzubilden, die üblicherweise verwendet werden.

  • ASCII kann Zeichen der englischen Sprache kodieren. Alle Zeichen sind genau 1 Byte lang.
  • UTF-8 ist eine Unicode-Textkodierung. Zeichen belegen zwischen 1 und 4 Bytes.
  • UTF-16 ist eine Unicode-Textkodierung. Zeichen sind entweder 2 oder 4 Bytes lang.

UTF-8 und UTF-16 sind beides Unicode-Kodierungen. Das heißt, sie können eine riesige Bandbreite an Zeichen darstellen, darunter:

  • Text in den meisten Sprachen und Schriften der Welt
  • historische Texte
  • Emoji

UTF-8 und UTF-16 sind beides Kodierungen mit variabler Länge. Das heißt, verschiedene Zeichen brauchen unterschiedlich viel Platz.

Betrachte den Buchstaben 'a' und das Emoji '😛'. In UTF-16 braucht der Buchstabe 2 Bytes, das Emoji aber 4 Bytes.

Der Trick bei dieser Übung ist, APIs zu verwenden, die auf Unicode-Zeichen (Codepoints) ausgelegt sind, statt auf Unicode-Codeeinheiten (codeunits).

Tcl-Hinweise zu Unicode

In Version 8.1 konnten Tcl-Strings Unicode-Zeichen problemlos verarbeiten. Damals war das ziemlich bahnbrechend. Doch je mehr Unicode-Zeichen hinzukamen, desto weiter fiel Tcl bei ihrer Verarbeitung zurück.

Tcls interne Implementierung konnte nur 16-Bit-Unicode-Zeichen verarbeiten, was nur die ersten 65.526 Zeichen abdeckt. Diese Tcl-Wiki-Seite, insbesondere die Diskussion über die Sprache „AndroWish“, nennt die Gründe.

Tcl 9.0 ist die erste Version, die den vollständigen Unicode-Zeichensatz verarbeiten kann. Daher lässt sich diese Übung nur mit Tcl in Version 9.0 (problemlos) lösen.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Tcl Exercism

Bereit, mit Microblog zu starten?

Melde dich bei Exercism an, um Tcl mit 135 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.