Common Lisp
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]
Málskipan
[breyta | breyta frumkóða]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).
Gagnatög
[breyta | breyta frumkóða]Föll
[breyta | breyta frumkóða]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,0 1,1 1,2 Orð búin til af höfundi.
- ↑ „Er hægt að búa til tölvur sem læra, til dæmis með því að forrita sig sjálfar?“. Vísindavefurinn.