Librerie


Exercism si propone di insegnare la fluidità nella sintassi, negli idiomi e nella libreria standard del linguaggio. Qui non si parla esplicitamente di librerie esterne (non integrate), perché quelle rientrano nella competenza. Gli esercizi devono quindi, con poche eccezioni, essere risolvibili senza usare librerie.

Perché supportare le librerie

Ci sono un paio di motivi per cui un track potrebbe comunque voler supportare le librerie:

  1. Il linguaggio ha una libreria standard (molto) minimale. Un esempio di linguaggio di questo tipo è Rust.
  2. La libreria aggiunge funzionalità di testing. Un esempio è una libreria che aggiunge il supporto al testing basato sulle proprietà.
  3. L'esercizio può essere risolto solo usando una libreria. Un esempio di esercizio di questo tipo è l'esercizio lens-person, che nella maggior parte dei linguaggi può essere risolto solo usando una libreria.

Supportare le librerie nel test runner

Dato che il test runner non ha accesso a internet mentre è in esecuzione, non è possibile scaricare le librerie in fase di esecuzione. L'unica soluzione a questo problema è installare/scaricare le librerie in fase di build, dove hai accesso a internet. In pratica, questo significa che dovrai installare/scaricare le librerie all'interno del Dockerfile.

Ad esempio, il Dockerfile del test runner per Prolog installa la libreria date_time:

RUN swipl pack install date_time -y

Documentazione

Se il tuo track supporta le librerie, conviene documentarlo in un documento del track. Ti chiediamo anche di collegare questo documento (usando il suo URL completo) dal documento exercises/shared/.docs/help.md.