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. . .

Practical Common Lisp - 3. Practic: O Baza de Date Simpla

Copyright © Peter Seibel
Traducere © Razvan Popa

3. Practic: O Baza de Date Simpla

Evident, inainte sa incepi sa scrii software adevarat in Lisp trebuie sa inveti limbajul. Dar hai sa fim cinstiti - poate te gandesti: "'Practical Common Lisp', oare nu e un oximoron? De ce sa invat un limbaj daca nu stie sa faca ce am eu nevoie?" Asa ca voi incepe dandu-ti un exemple de ce se poate face cu Common Lisp. In acest capitol vei scrie o baza de date simpla pentru urmarirea CD-urilor. Vei folosi tehnici similare in Capitolul 27 cand vei construi o baza de date de MP3-uri pentru server-ul nostru. De fapt, ai putea sa te gandesti la asta ca la o parte din proiectul software pentru MP3-uri - la urma urmei, pentru a avea niste MP3-uri pe care sa le asculti ar fi bine sa stii ce CD-uri ai si care din ele trebuie copiate.

Practical Common Lisp - 2. Sapuneste, Clateste, Repeta: un tur al REPL

Copyright © Peter Seibel
Traducere © Razvan Popa

2. Sapuneste, Clateste, Repeta: Un Tur al REPL

In acest capitol iti vei configura mediul de programare si vei scrie primele programe in Common Lisp. Vom folosi Lisp in a Box,

Practical Common Lisp - 1. De ce Lisp?

Copyright © Peter Seibel
Traducere © Razvan Popa

1. Introducere: De ce Lisp?

Daca esti de parere ca cea mai mare placere in programare vine din a face multe cu cod care iti exprima intentiile intr-un mod clar si simplu, atunci sa programezi in Common Lisp s-ar putea sa fie cea mai tare chestie pe care ai putea s-o faci cu un calculator. Vei realiza mai multe, mai rapid, folosind Lisp decat daca ai realiza cam cu orice alt limbaj
Asta e o afirmatie indrazneata. Pot sa o dovedesc? Nu doar in cateva pagini intr-un capitol - va trebui sa inveti ceva Lisp si sa vezi singur - si pentru aceasta exista restul cartii de fata. Deocamdata, as vrea sa incep cu niste dovezi anecdotice, povestea caii mele catre Lisp. Apoi, in sectiunea urmatoare, voi explica beneficiile pe care cred ca le poti obtine din invatarea Common Lisp.

Practical Common Lisp, de Peter Seibel - traducere in limba romana

Aceasta pagina contine traducerea in limba romana a textului cartii "Practical Common Lisp" de Peter Seibel.
This page contains the romanian translation of "Practical Common Lisp" by Peter Seibel.
Este o traducere facuta in principal pentru uz propriu si poate sa contina greseli.
I translated it mainly for my own use and it may contain errors.