Bibliotheken


Exercism möchte Geläufigkeit im Umgang mit der Syntax, den Idiomen und der Standardbibliothek einer Sprache vermitteln. Das bezieht sich ausdrücklich nicht auf externe (nicht eingebaute) Bibliotheken, denn das fällt unter Beherrschung. Übungen müssen sich also, von wenigen Ausnahmen abgesehen, ohne Bibliotheken lösen lassen.

Gründe für die Unterstützung von Bibliotheken

Es gibt ein paar Gründe, warum ein Track trotzdem Bibliotheken unterstützen möchte:

  1. Die Sprache hat eine (sehr) minimale Standardbibliothek. Ein Beispiel für eine solche Sprache ist Rust.
  2. Die Bibliothek fügt Testfunktionalität hinzu. Ein Beispiel ist eine Bibliothek, die Unterstützung für eigenschaftsbasiertes Testen hinzufügt.
  3. Die Übung lässt sich nur mit einer Bibliothek lösen. Ein Beispiel für eine solche Übung ist die Übung lens-person, die sich in den meisten Sprachen nur mit einer Bibliothek lösen lässt.

Bibliotheken im Test-Runner unterstützen

Da der Test-Runner während der Ausführung keinen Zugriff auf das Internet hat, können Bibliotheken nicht zur Laufzeit heruntergeladen werden. Die einzige Lösung für dieses Problem ist, Bibliotheken zur Build-Zeit zu installieren bzw. herunterzuladen, wo du tatsächlich Zugriff auf das Internet hast. In der Praxis bedeutet das, dass du Bibliotheken im Dockerfile installieren bzw. herunterladen musst.

Ein Beispiel: Das Dockerfile des Prolog-Test-Runners installiert die Bibliothek date_time:

RUN swipl pack install date_time -y

Dokumentation

Wenn dein Track Bibliotheken unterstützt, sollte das in einer Track-Dokumentation dokumentiert werden. Bitte verlinke dieses Dokument außerdem (mit seiner vollständigen URL) aus dem exercises/shared/.docs/help.md-Dokument.