Βιβλιοθήκες


Το Exercism στοχεύει να σε μάθει να έχεις ευχέρεια στη σύνταξη, στα ιδιώματα και στην πρότυπη βιβλιοθήκη της γλώσσας. Αυτό ρητά δεν αναφέρει εξωτερικές βιβλιοθήκες (μη ενσωματωμένες), καθώς κάτι τέτοιο εμπίπτει στην επάρκεια. Οι ασκήσεις πρέπει επομένως, με λίγες εξαιρέσεις, να λύνονται χωρίς τη χρήση βιβλιοθηκών.

Λόγοι για υποστήριξη βιβλιοθηκών

Υπάρχουν μερικοί λόγοι για τους οποίους μια διαδρομή μπορεί να θέλει παρ' όλα αυτά να υποστηρίζει βιβλιοθήκες:

  1. Η γλώσσα έχει (πολύ) μικρή πρότυπη βιβλιοθήκη. Ένα παράδειγμα τέτοιας γλώσσας είναι η Rust.
  2. Η βιβλιοθήκη προσθέτει λειτουργικότητα για δοκιμές. Ένα παράδειγμα είναι μια βιβλιοθήκη που προσθέτει υποστήριξη για property-based testing.
  3. Η άσκηση μπορεί να λυθεί μόνο με τη χρήση βιβλιοθήκης. Ένα παράδειγμα τέτοιας άσκησης είναι η άσκηση lens-person, η οποία στις περισσότερες γλώσσες μπορεί να λυθεί μόνο με τη χρήση βιβλιοθήκης.

Υποστήριξη βιβλιοθηκών στον εκτελεστή δοκιμών

Επειδή ο εκτελεστής δοκιμών δεν έχει πρόσβαση στο διαδίκτυο όσο εκτελείται, δεν είναι δυνατό να κατεβάσεις βιβλιοθήκες τη στιγμή της εκτέλεσης. Η μόνη λύση σε αυτό το πρόβλημα είναι να εγκαταστήσεις/κατεβάσεις τις βιβλιοθήκες τη στιγμή του build, όπου έχεις πρόσβαση στο διαδίκτυο. Στην πράξη, αυτό σημαίνει ότι θα χρειαστεί να εγκαταστήσεις/κατεβάσεις βιβλιοθήκες μέσα στο Dockerfile.

Για παράδειγμα, ο Dockerfile του εκτελεστή δοκιμών για Prolog εγκαθιστά τη βιβλιοθήκη date_time:

RUN swipl pack install date_time -y

Τεκμηρίωση

Αν η διαδρομή σου υποστηρίζει βιβλιοθήκες, αυτό θα πρέπει να τεκμηριώνεται σε ένα έγγραφο της διαδρομής. Παραπέμψε επίσης σε αυτό το έγγραφο (χρησιμοποιώντας το πλήρες URL του) από το έγγραφο exercises/shared/.docs/help.md.