Pagini

Se afișează postările cu eticheta lisp. Afișați toate postările
Se afișează postările cu eticheta lisp. Afișați toate postările

2013-09-25

Site in Common Lisp, partea 6

Aveam de gand sa fac o pagina meseriasa de administrare, dar m-am razgandit. Mai
bine mai simpla si mai repede, decat mai complicata si sa o termin cine stie
cand.
Ca sa atasez atribute unor vehicule voi pune mai intai link-uri pe vehicule,
care sa deschida pagina de administrare avand vehiculul selectat undeva
in dreapta. Pentru asta voi defini o noua comanda, EDIT-VEHICLE. Fiind vorba de
link-uri obisnuite, voi folosi parametri GET, spre deosebire de comenzile
ADD-VEHICLE si ADD-ATTRIBUTE, despre care am zis ca la un moment dat le voi
schimba pe POST. Asa ca voi incerca sa preiau CMD atat din parametrii GET cat si
din cei POST.

Am modificat atat template-ul, cat si codul din pagina de administrare.

2013-09-21

Site in Common Lisp, partea 5

Hunchentoot defineste mai multe clase, printre care ACCEPTOR, REQUEST, REPLY.
Pentru a ajuta pe oamenii sarmani, ne pune la dispozitie si clasa EASY-ACCEPTOR,
care extinde ACCEPTOR si ofera mijloace mai facile de a raspunde la cereri.
In timpul procesarii unei cereri vor exista totdeauna variabilele speciale
*REQUEST* si *REPLY*.

2013-09-19

Site in Common Lisp, partea 4

Hai sa facem niste template-uri pentru pagini. Facem intai niste pagini de
administrare, care nu vor fi disponibile vizitatorilor obisnuiti ai site-ului.
Pentru asta ar trebui sa implementam functionalitate de login si logout.

2013-09-10

Site in Common Lisp, partea 3

Acum avem create functii care sa adauge vehicule si atribute noi, sa seteze
si sa preia atribute de pe vehicule. Avem chiar si o functie care sa caute
acele vehicule care indeplinesc anumite conditii (ma rog, atributele lor).
Pare ca sunt multe fire pe-afara, lucru care nu ma incanta, asa ca modificam
pe ici pe colo.

2013-09-05

Site in Common Lisp, partea 2

Acum avem functii ca sa adaugam atribute si vehicule, ne trebuie o functie
care sa seteze atribute pe vehicule (set-attribute-on-vehicle) si una care sa
caute vehicule in functie de atribute (adica query-vehicles).

2013-09-02

Site in Common Lisp, partea 1

Voi incepe o serie de articole in care voi povesti cum lucrez in Common Lisp
la un site, un proiect personal. Intentia este sa scriu macar un articol pe
saptamana. Pentru setarea mediului de lucru Common Lisp vezi aici
cum se seteaza pe un Raspberry Pi si poti extrapola pentru un PC obisnuit.

2013-01-20

Instalare Clozure Common Lisp pe Raspberry Pi

Mi-am luat o jucarie noua, un Raspberry Pi model B, cu 512 MB RAM si mi-am dedicat un weekend configurarii lui. Imi place mult cum arata, si e la un pret mai mic decat majoritatea celorlalte calculatoare similare.

Se poate porni usor cu ghidul de pe raspberrypi.org. Am descarcat Raspbian, l-am dezarhivat si apoi copiat pe un card SD mai incapator folosind Win32 Disk Imager.


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