b"\n_START_ARTICLE_\nLisp\n_START_PARAGRAPH_\nLisp (angl. LISP, i\xc5\xa1 angl. List Processing 's\xc4\x85ra\xc5\xa1\xc5\xb3 apdorojimas') \xe2\x80\x93 programavimo kalb\xc5\xb3 \xc5\xa1eima. Sukurta praeito am\xc5\xbeiaus \xc5\xa1e\xc5\xa1to de\xc5\xa1imtme\xc4\x8dio gale kaip abstrakti rekursini\xc5\xb3 funkcij\xc5\xb3 u\xc5\xbera\xc5\xa1ymo forma, kalba vis dar naudojama \xc4\xafvairiose srityse, taip pat ir kompiuteri\xc5\xb3 mokslo studijose. \xc5\xa0iuo metu populiariausi Lisp dialektas yra Common Lisp ir Scheme._NEWLINE_Pagrindin\xc4\x97 duomen\xc5\xb3 strukt\xc5\xabra Lisp kalboje \xe2\x80\x93 s\xc4\x85ra\xc5\xa1as. Lisp kalba para\xc5\xa1ytos programos lengvai atpa\xc5\xbe\xc4\xafstamos i\xc5\xa1 unikalaus skliausteli\xc5\xb3 naudojimo bei prefiksin\xc4\x97s formos.\n_START_SECTION_\nIstorija\n_START_PARAGRAPH_\n1956 metais Masa\xc4\x8diusetso technologinio instituto profesorius John McCarthy bei student\xc5\xb3 grup\xc4\x97, siekdami realizuoti analizuojan\xc4\x8dio bei tyrin\xc4\x97jan\xc4\x8dio angl\xc5\xb3 kalb\xc4\x85 dirbtinio intelekto projekt\xc4\x85, suk\xc5\xabr\xc4\x97 kalb\xc4\x85 LISP (LISt Processing). I\xc5\xa1 prad\xc5\xbei\xc5\xb3 tai buvo versija skirta pirmiesiems kompiuteriams IBM ir DEC. O pirmas visi\xc5\xa1kai baigtas variantas LISP 1.5 buvo i\xc5\xa1leistas 1965 metais. Pirm\xc4\x85 kart\xc4\x85 apra\xc5\xa1yta 1958 metais, kalba yra antra pagal senum\xc4\x85 i\xc5\xa1 auk\xc5\xa1to lygio programavimo kalb\xc5\xb3 \xe2\x80\x93 tik Fortran kalba yra senesn\xc4\x97.\n_START_SECTION_\nSavyb\xc4\x97s\n_START_PARAGRAPH_\nLisp kalboje viskas u\xc5\xbera\xc5\xa1oma i\xc5\xa1rai\xc5\xa1komis, tiek kodas, tiek ir duomenys. Kiekviena i\xc5\xa1rai\xc5\xa1ka sukuria rezultat\xc4\x85 (ar rezultat\xc5\xb3 s\xc4\x85ra\xc5\xa1\xc4\x85), kuris gali b\xc5\xabti naudojamas kitose i\xc5\xa1rai\xc5\xa1kose. Kadangi funkcijos u\xc5\xbera\xc5\xa1omos kaip s\xc4\x85ra\xc5\xa1ai, jas galima keisti kaip duomenis, tod\xc4\x97l labai paprasta programos veikimo metu keisti program\xc4\x85 ar dinami\xc5\xa1kai kurti algoritmus._NEWLINE_Lisp naudojama prefiksin\xc4\x97 u\xc5\xbera\xc5\xa1ymo forma, tod\xc4\x97l i\xc5\xa1rai\xc5\xa1ka 1+2+3+4 Lisp kalboje atrodyt\xc5\xb3 taip:_NEWLINE_(+ 1 2 3 4)_NEWLINE_Daugumoje Lisp dialekt\xc5\xb3, funkcijos yra pirmos klas\xc4\x97s objektai, kas rei\xc5\xa1kia, kad jas galima vartoti ten pat, kaip ir kitus objektus. Pavyzd\xc5\xbeiui, funkciniame programavime esmin\xc4\x97s funkcijos yra \xe2\x80\x9emap\xe2\x80\x9c ir \xe2\x80\x9efilter\xe2\x80\x9c. Funkcijos \xe2\x80\x9emap\xe2\x80\x9c argumentai yra funkcija bei s\xc4\x85ra\xc5\xa1as. Ji kiekvienam s\xc4\x85ra\xc5\xa1o elementui pritaiko funkcij\xc4\x85, ir gr\xc4\x85\xc5\xbeina nauj\xc4\x85 s\xc4\x85ra\xc5\xa1\xc4\x85. Pavyzdys:_NEWLINE_(defun twice (x)_NEWLINE_  (* x 2))_NEWLINE_ _NEWLINE_(map #'twice '(1 2 3 4 5))=> (2 4 6 8 10)_NEWLINE_Ypa\xc4\x8d naudinga tai, kad galima kurti anonimines funkcijas (\xe2\x80\x9elambda\xe2\x80\x9c). Pavyzd\xc5\xbeiui, ankstesn\xc4\xaf pavyzd\xc4\xaf galima b\xc5\xabt\xc5\xb3 para\xc5\xa1yti taip:_NEWLINE_(map #'(lambda (x)_NEWLINE_         (* x 2))_NEWLINE_     '(1 2 3 4 5))_NEWLINE_Dauguma \xc5\xa1iuolaikini\xc5\xb3 Lisp sistem\xc5\xb3 turi gausias bibliotekas (pvz., Common Lisp). Kitos, kaip kad Scheme pasirinko kit\xc4\x85 keli\xc4\x85 -- joms svarbiau sintaks\xc4\x97s paprastumas ir ai\xc5\xa1kumas."