Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Πώς να δημιουργήσετε μια Lisp Macro

Μπορείτε να αναπτυχθούν και να επεκτείνουν τη δύναμη της γλώσσας προγραμματισμού Lisp με τη χρήση των μακροεντολών . Lisp μακροεντολές εφαρμόζουν ένα όνομα σε ένα συνδυασμό των υφιστάμενων τμημάτων της γλώσσας Lisp , Lisp βιβλιοθήκες ή λειτουργίες που γράφετε για να δημιουργήσετε ένα νέο χαρακτηριστικό γλώσσα που θα αξιολογήσει , όπως και κάθε άλλο στοιχείο γλώσσας Lisp . Οι μακροεντολές είναι μια μορφή στενογραφίας --- όταν αξιολογεί μια μακροεντολή , ο διερμηνέας επεκτείνει τη μακροεντολή μέσα στον κώδικα που εμπερικλείει, στη συνέχεια, εκτελεί τον κώδικα . Ένα παράδειγμα ενός Lisp macro μπορείτε να δημιουργήσετε είναι ένα Φαρενάιτ σε Κελσίου βοηθητικό πρόγραμμα μετατροπής θερμοκρασίας . Αυτό το παράδειγμα δείχνει πώς μια μακροεντολή μπορεί να συνδυάσει μια άλλη μακροεντολή και Lisp λειτουργία . Τα πράγματα που θα χρειαστείτε
έναν υπολογιστή με εγκατεστημένη Common Lisp .
Η Εμφάνιση Περισσότερες οδηγίες
Η 1

ξεκινήσει το τερματικό γραμμής εντολών κάνοντας κλικ στο κουμπί " Start" και κάνοντας κλικ στο " Run " επιλογή του μενού . Πληκτρολογήστε "εντολή " στο πλαίσιο εισαγωγής , στη συνέχεια, κάντε κλικ στο κουμπί "OK". 2

Ξεκινήστε την Common Lisp διερμηνέα πληκτρολογώντας " clisp " στη γραμμή εντολών . Πατήστε το πλήκτρο "Enter" .
Εικόνων 3

Πληκτρολογήστε τον κωδικό για το πρώτο μέρος του δικογράφου της προσφυγής στη Lisp γραμμή εντολών . Νέα μακροοικονομική σας αποτελείται από μια άλλη μακροεντολή που ονομάζεται Λόγος . Η εντολή Defmacro δημιουργεί τη μακροεντολή , η οποία περιέχει την κλίση του οικοπέδου Κελσίου σε σχέση με Φαρενάιτ .

( Defmacro αναλογία ( ) ( /5,0 9,0 ) )
Η

4 Πληκτρολογήστε τον κωδικό για το δεύτερο μέρος της μακροοικονομικής στη Lisp γραμμή εντολών . Η λειτουργία " diff " αφαιρεί 32 από τη θερμοκρασία σε βαθμούς Φαρενάιτ

( defun diff ( x ) ( - x 32,0 ) ) .
5

Πληκτρολογήστε τον κωδικό για το τελευταίο μέρος της macro στη Lisp γραμμή εντολών . Η μακροοικονομική " fc " δέχεται τη θερμοκρασία σε βαθμούς Φαρενάιτ , πολλαπλασιάζει επί τον λόγο , πολλαπλασιάζει με " diff ", στη συνέχεια τυπώνει το αποτέλεσμα .

( Defmacro fc ( x ) ( * (λόγος ) ( diff x ) ) )
Η 6

Δοκιμάστε το μακρο πληκτρολογώντας " ( fc 98,6 ) " στη Lisp γραμμή εντολών . Ο διερμηνέας πρέπει να εκτυπώσετε 37.0 , το οποίο είναι 98,6 ή τη θερμοκρασία του σώματος σε βαθμούς Κελσίου .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα