ceea ce a făcut altfel de la LISP

1. Condiţional O condiție este o construcție dacă-atunci-altceva. Acum le dăm ca fiind de acord. Ei au fost inventați de McCarthy când a dezvoltat Lisp. (Fortran, la acel moment, a avut doar o condiție condiționată, bazată îndeaproape pe instrucțiunea de transfer în hardware-ul subiacente.) McCarthy, care se afla la Comitetul Algol, a introdus condiționat în Algol, de la care s-au extins la cele mai multe limbi.
2 . Un tip de funcție. În LISP, funcțiile sunt obiecte de primă clasă – sunt un tip de date ca întregi, lanțuri etc. și au o reprezentare literală, pot fi stocate în variabile, pot fi transmise ca argumente și așa mai departe.
3 . Recursură Recursiunea a existat ca un concept matematic dinainte de a LIS, desigur; Dar Lisp a fost primul limbaj de programare pentru al susține. (S-ar putea spune că este implicit în a face funcții obiecte de primă clasă.)
4. Un nou concept de variabile. În Lisp, toate variabilele sunt, de fapt, indicatori. Valorile au tipuri, non-variabile și a atribui sau variabilele de legătură înseamnă copierea Poops, nu la ceea ce arată.
5. Colecția de gunoi.
6. Programe compuse din expresii. Programele LISP sunt arbori de expresii, fiecare dintre ele returnează o valoare. (În unele Lisps, expresiile pot returna mai multe valori.) Acest lucru contrastează cu Fortran și majoritatea limbilor succesive, care fac distincția între expresiuni și declarații.
A fost natural să avem această distincție în Fortran, deoarece (așa cum era de așteptat într-o limbă În care formatul de intrare a fost cartele perforate), limba a fost orientată spre linii. Declarațiile nu au putut fi date. Astfel, în timp ce aveați nevoie de expresii pentru matematică la lucru, nu a avut sens să facă altceva care să returneze o valoare, pentru că nu ar putea fi nimic de așteptare.
Această limitare a dispărut cu sosirea limbilor structurate în blocuri , dar până atunci era deja prea târziu. Distincția dintre expresiuni și declarații a fost consolidată. A fost transmisă de la Fortran la algol și de acolo la descendenții săi.
Când o limbă se face în întregime de expresii, le puteți face așa cum doriți. Puteți spune fie (folosind sintaxa ARC):
(dacă foo (= x 1) (= x 2))
sau
(= x (dacă foo 1 2)
7. Un tip de simbol. Simbolurile diferă de lanțurile în care egalitatea poate fi dovedită prin compararea unui pointer.
8. O notație pentru codul folosind simboluri.
9. Toată limba este întotdeauna disponibilă. Nu există o distincție reală între timpul de citire, timpul de compilare și timpul de execuție. Puteți compila sau executa codul în timpul citirii, citiți sau executați codul în timpul compilării și citiți sau compilați codul de execuție.
Executați codul la timpul de citire permite utilizatorilor să reprogrameze sintaxa LISP; Codul de funcționare în timpul de compilare este baza macrocomenzilor; Compilarea la Runtime este baza utilizării LISP ca limbă de extindere în programe precum EMACS; Și citirea timpului de funcționare permite programelor să comunice folosind expresii, o idee reinventată recent ca XML.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *