Fara í innihald

Common Lisp

Úr Wikipediu, frjálsa alfræðiritinu

Common Lisp er mállýska af Lisp-forritunarmálinu búin til að staðla mismunandi Lisp-afbrygði sem til voru á þeim tíma.

Common Lisp er sammynda[1] og hefur öflugt fjölvakerfi sem gerir forriturum kleyft að breyta málskipun málsins og að skrifa forrit sem búa til önnur, jafnvel flóknari, forrit.[2]

Common Lisp er Lisp-mállýska og notar sem slík S-segðir til að tákna kóða og gagnagrindir. Falla- og fjölvaköll eru rituð sem listar þar sem nafn fallsins eða fjölvans er ritað fyrst. Hér táknar örin ⇒ GILDI að síðasta aðgerð skili GILDI.

Prentar „Halló, heimur!“:

 (print "Halló, heimur!")
  "Halló, heimur!"

Leggur saman tvo og tvo og skilar gildinu:

 (+ 2 2)
  4

Skilgreinir fall sem hefur tölu upp í annað veldi:

 (defun tvíveldi (tala)
   (* tala tala))
  TVÍVELDI

Hefur 9 og talnalista upp í annað veldi með fallinu sem skilgreint var að ofan:

 (tvíveldi 9)
  81
 (mapcar #'tvíveldi (list 1 2 3 4 5))
  (1 4 9 16 25)

sem er jafngilt því að nota nafnlaust fall:

 ((lambda (tala) (* tala tala)) 9)
  81

 (mapcar (lambda (tala) (* tala tala)) (list 1 2 3 4 5))
  (1 4 9 16 25)

þar sem #'tvíveldi er stytting á (function tvíveldi).

Common Lisp styður fyrsta flokks föll[1] þar sem föll geta skilað öðrum föllum, tekið föll sem færibreytur og geymt þau í venjulegum gagnagrindum. Mörg innbyggð föll í Common Lisp eru æðri föll[1] (föll sem taka föll sem færibreytur) en dæmi um það er sort fallið sem tekur inn venslafall og valkvæmt fall sem er notað til að nálgast hvert stak. Hér röðum við lista eftir lækkandi og hækkandi stökum:

 (sort (list 5 2 6 3 1 4) #'>)
  (6 5 4 3 2 1)
 (sort (list 5 2 6 3 1 4) #'<)
  (1 2 3 4 5 6)

og hér röðum við lista eftir fyrsta stakinu í hverju staki í lækkandi röð:

 (sort (list '(9 A) '(3 B) '(4 C)) #'< :key #'first)
  ((3 B) (4 C) (9 A))

Tilvísanir

[breyta | breyta frumkóða]
  1. 1,0 1,1 1,2 Orð búin til af höfundi.
  2. „Er hægt að búa til tölvur sem læra, til dæmis með því að forrita sig sjálfar?“. Vísindavefurinn.