Lisp
Főnév
Lisp (tsz. Lisps)
Lisp egy nagyon régi, nagy hatású programozási nyelv, a második legrégebbi széles körben használt nyelv (a Fortran után). John McCarthy tervezte 1958-ban, eredetileg mesterséges intelligencia (AI) kutatás céljából.
A név jelentése: LISt Processing → mert a nyelv központi adatszerkezete a lista.
🌟 Lisp fő jellemzői
✅ Funkcionális nyelv elemeit tartalmazza (de imperatív is lehet) ✅ Lista alapú szintaxis ✅ Kifejezés-orientált → minden kifejezésnek van értéke ✅ Makró-rendszer → programot programból írni (metaprogramozás) ✅ Garbage Collection (1960-as évek óta) ✅ Interaktív REPL (Read-Eval-Print Loop) → azonnali próbálgatás ✅ Homoikónikus → a kód maga is lista (adatként kezelhető)
📝 Példa Lisp kódból
;; Komment sor
(defun square (x)
(* x x))
(print (square 5))
Magyarázat:
defun→ függvénydefiníciósquarefüggvény, ami négyzetre emel(* x x)→ szorzás, prefix notációban!(print (square 5))→ kiírja az 5 négyzetét (25)
🏗 Alap szintaxis
Minden s-expression (szimbolikus kifejezés) → zárójelezett lista:
(operator operand1 operand2 ...)
Pl.:
(+ 2 3) ; 5 (* 4 5) ; 20 (list 1 2 3 4) ; (1 2 3 4)
🔑 Lisp nyelvi elemek
✅ Függvények elsőrendűek ✅ Rekurzió natív módon támogatott ✅ Makrók → program-generáló programok ✅ Homoikónia → a programkód is adat, ami könnyen manipulálható ✅ Típusos (dinamikusan) ✅ Lambda kifejezések
🌐 Lisp dialektusok
- Common Lisp → ipari alkalmazások, erős, nagy nyelv
- Scheme → oktatási célokra, minimalista
- Clojure → modern Lisp, JVM-en fut → kiváló Java integráció
- Emacs Lisp → az Emacs szerkesztő testreszabásához használt Lisp
- Racket → Scheme leszármazott, tanítás + kutatás
🏗 Példa: rekurzív faktoriális Lisp-ben
(defun factorial (n)
(if (<= n 1)
1
(* n (factorial (- n 1)))))
(factorial 5)→ eredmény:120
💡 Homoikónia példája
;; Egy kódot adatként is lehet manipulálni
(setq my-code '(+ 1 2 3))
(eval my-code) ; lefuttatja → 6
🚀 Miért érdekes a Lisp?
✅ Makrók miatt nagyon erős metaprogramozás ✅ Nagyon flexibilis nyelv → bármilyen programozási stílus megengedett ✅ Sok AI programot Lisp-ben írtak a kezdetekben ✅ Interaktív REPL → fejlesztés közben “élő” kód ✅ Homoikónikus → könnyű kódgenerálás, DSL-ek készítése
TL;DR
Lisp:
- 1958 óta létezik → örökzöld nyelv
- Lista alapú nyelv, prefix szintaxis
- Központi elemei: homoikónia, makrók, funkcionális szemlélet
- Dialektusok: Common Lisp, Scheme, Clojure a legismertebbek
- Sok modern nyelv inspirációja Lisp-ből ered!