janet — συγκεντρωτικός οδηγός — DedSec Project
janet — συγκεντρωτικός οδηγός Janet Έννοια Η Janet είναι μικρή ενσωματώσιμη γλώσσα τύπου Lisp με tables, arrays και compact runtime. Παράδειγμα πηγαίου κώδικα ή χρήσης Άσκηση με…
Janet
Έννοια
Η Janet είναι μικρή ενσωματώσιμη γλώσσα τύπου Lisp με tables, arrays και compact runtime.
Παράδειγμα πηγαίου κώδικα ή χρήσης
(def nums @[1 2 3])
(print (length nums))
Άσκηση με συγκεκριμένο στόχο
Ξεχώρισε mutable array από άλλες συλλογές, άλλαξε μία τιμή και σύγκρινε τα στοιχεία.
Έλεγχος και διάγνωση
Τα macros μετασχηματίζουν κώδικα και δεν είναι κανονικές συναρτήσεις· έλεγξε evaluation πριν από mutations.
Σημείωσε την είσοδο, το αναμενόμενο αποτέλεσμα και το πραγματικό αποτέλεσμα στην εγκατεστημένη έκδοση της Janet. Αν ο κώδικας δεν είναι προσβάσιμος από το κινητό, κράτησε το παράδειγμα ως μη δοκιμασμένο και εξήγησε τη σημασιολογία αντί να ισχυριστείς επιτυχία. Κάνε μια δεύτερη δοκιμή που απομονώνει μόνο τον μηχανισμό της άσκησης και κράτησε ακριβές σφάλμα με τρόπο που να μην εκθέτει προσωπικά δεδομένα.
Janet — Αναλυτικός οδηγός εξάσκησης
Πραγματικό αρχικό δείγμα
(defn greet [name] (string "Hello, " name "!"))
(print (greet "Ada"))
Περιβάλλον: janet hello.janet.. Επιβεβαίωσε ότι έχεις το σωστό compiler, host ή simulator πριν θεωρήσεις την έξοδο αξιόπιστη. Για scripts με πρόσβαση σε προσωπικά αρχεία ή ρυθμίσεις, χρησιμοποίησε προσωρινά και read-only δεδομένα.
Συγκεκριμένος στόχος υλοποίησης
Χρησιμοποίησε map και reduce πάνω σε array και σύγκρινε mutable με immutable collections. Ξεχώρισε table από struct ως API contract.
Κρίσιμο λάθος που πρέπει να αναγνωρίζεις
Τα macros/fibers της Janet έχουν δικούς τους κανόνες· μην αντιγράφεις Clojure/Common Lisp forms.
Janet — Διαδρομή ουσιαστικής εξάσκησης
Θεμελιώδης άσκηση
Δημιούργησε immutable struct για settings και σύγκρινε με mutable table, μαζί με missing-key lookup.
Άσκηση επίλυσης προβλήματος
Σύνθεσε filtering σε array και έλεγξε μη αριθμητικό input πριν το reduction. Μελέτησε macro expansion αφού δουλεύει η απλή function.
Ανεξάρτητο έργο
Γράψε record counter με errors. Δοκίμασε fiber suspension και σημείωσε scheduling assumptions.