Pagini

2012-12-09

Practical Common Lisp - 7. Macrouri: Constructii Standard de Control

Copyright © Peter Seibel
Traducere © Razvan Popa

7. Macrouri: Constructii Standard de Control

In timp ce multe alte idei originale din Lisp, de la expresia conditionala la colectarea gunoiului (garbage collection), au fost incorporate in alte limbaje, exista o functionalitate ce continua sa diferentieze Common Lisp, si anume sistemul sau de macrouri. Din pacate, in lumea calculatoarelor cuvantul macro descrie multe lucruri care seamana doar pe departe cu macrourile din Common Lisp. De aici rezulta multe neintelegeri atunci cand programatorii in Lisp incearca sa explice celorlalti ce tari sunt macrourile.1 Pentru a intelege macrourile din Lisp trebuie sa le abordezi cu minte limpede, fara preconceptii bazate pe alte lucruri care se intampla sa fie numite tot macrouri. Asa ca hai sa incepem discutia noastra despre macrourile din Lisp facand un pas inapoi pentru a vedea diversele moduri in care limbajele de programare pot fi extinse.

2012-12-05

Abstract Factory, Factory Method si Builder - in romana

Initial voiam sa scriu articolele astea in stilul in care sunt scrise toate cartile despre Design Patterns: cate unul pe articol. Apoi m-am razgandit. Le voi scrie in felul in care mi se pare mie potrivit, in asa fel incat sa inteleg mai bine ce-i cu pattern-urile astea.

Cam orice carte pe subiect vad ca incepe cu Fabrica Abstracta (Abstract Factory Design Pattern), asa ca momentan ma voi conforma.

2012-12-01

Practical Common Lisp - 6. Variabile

Copyright © Peter Seibel
Traducere © Razvan Popa

6. Variabile

Urmatorul bloc de baza la care ne vom uita sunt variabilele. Common Lisp suporta doua tipuri de variabile: lexicale si dinamice.1 Aceste doua tipuri corespund in mare parte variabilelor "locale" si "globale" din alte limbaje. Totusi, corespondenta este doar aproximativa. Pe de o parte, variabilele "locale" din unele limbaje seamana mult cu variabilele dinamice din Common Lisp.2 Si pe de alta parte, variabilele locale din unele limbaje sunt definite lexical fara a oferi toate capabilitatile pe care le au variabilele lexicale din Common Lisp. Mai ales, nu toate limbajele care au variabile cu domeniu de vizibilitate lexical suporta inchideri.
Pentru a face lucrurile si mai confuze, multe din formele care folosesc variabile pot fi folosite atat cu variabile lexicale cat si dinamice. Deci voi incepe discutand cateva aspecte ale variabilelor din Lisp care se aplica ambelor tipuri si apoi voi acoperi caracteristicile specifice variabilelor lexicale si dinamice. Apoi voi discuta despre operatorul de atribuire cu scop general din Common Lisp, SETF, care este folosit pentru a atribui valori noi variabilelor si cam oricarui alt loc in care poate fi pastrata o valoare.

Practical Common Lisp - 5. Functii

Copyright © Peter Seibel
Traducere © Razvan Popa

5. Functii


(pe scurt ▼)

Dupa regulile de sintaxa si semantica, cele mai de baza trei componente ale programelor Lisp sunt functiile, variabilele si macro-urile. Le-ai folosit pe toate in timp ce construiai baza de date din Capitolul 3, dar am trecut peste multe din detaliile de functionare si folosire. Voi dedica urmatoarele cateva capitole acestor trei subiecte, incepand cu functiile, care - la fel ca omoloagele lor din alte limbaje - constituie mecanismul de baza pentru abstractizarea functionalitatii.
Mare parte din Lisp insusi sunt functii. Mai mult de trei sferturi din numele definite in standardul limbajului sunt ale functiilor. Toate tipurile de date interne (built-in) sunt definite in intregime pe baza functiilor care opereaza cu ele. Chiar si puternicul sistem de obiecte din Lisp este construit pe o extensie conceptuala a functiilor, functiile generice, despre care voi vorbi in Capitolul 16.

Practical Common Lisp - 4. Sintaxa si Semantica

Copyright © Peter Seibel
Traducere © Razvan Popa

4. Sintaxa si Semantica

Dupa turul initial, ne vom domoli pentru cateva capitole si ne vom uita mai sistematic la capabilitatile vazute pana acum. Voi incepe cu o imagine de ansamblu a elementelor de baza din sintaxa si semantica Lisp-ului, ceea ce inseamna ca trebuie, desigur, sa raspund la o anume intrebare arzatoare. . .