O le a le mea na fa'apitoa ai Lisp

«Le gagana sili polokalame na faia«
- Alan Kay, "i luga ole Lisp"

O le a le mea na fa'apitoa ai Lisp

Ina ua atiina ae e McCarthy Lisp i le faaiuga o le 1950, sa matua ese lava mai gagana o loo i ai, o le mea sili ona taua Fortran.

Na fa'ailoa mai e Lisp ni manatu fou se iva:

1. Tulaga. O fa'amatalaga fa'atu'utu'uga o faufale pe afai-ona-ese. O lea ua tatou manatu māmā i ai. Sa latou faia McCarthy i le taimi o le atinaʻeina o Lisp. (Fortran i lena taimi na o faamatalaga goto, e vavalalata ma se faatonuga a le lala i luga o meafaigaluega faavae.) McCarthy, a o i ai i le komiti o Algol, sa tuuina atu tuutuuga ia Algol, lea na latou salalau atu i isi gagana.

2. Se ituaiga galuega. I Lisp, o galuega o mea muamua-vasega - o se ituaiga faʻamatalaga, pei o numera, manoa, ma isi, ma e iai se faʻatusa moni, e mafai ona teuina i fesuiaiga, e mafai ona pasia e fai ma finauga, ma isi.

3. Recursion. Recursion, ioe, sa i ai o se manatu faʻa-matematika i luma o Lisp, ae Lisp o le gagana polokalame muamua e lagolagoina ai. (Atonu o loʻo faʻaalia i le fatuina o galuega e pei o mea muamua-vasega.)

4. O se manatu fou o fesuiaiga. I Lisp, o fesuiaiga uma o ni faʻamatalaga aoga. O tau o mea ia e iai, ae le o fesuiaiga, ma le tuʻuina atu poʻo le fusifusia o fesuiaiga o lona uiga o le kopiina o faʻailoga, ae le o mea latou te faasino i ai.

5. Aoina lapisi.

6. Polokalama e iai fa'amatalaga. O polokalame Lisp o la'au o fa'aaliga, o ia mea ta'itasi e toe fa'afo'i mai ai se tau. (O nisi faʻamatalaga Lisp e mafai ona toe faʻafoʻi le tele o tau.) E faʻatusatusa lenei mea ma Fortran ma le tele o isi gagana manuia e faʻaeseese ai "faʻamatalaga" ma "faʻamatalaga."

O se mea masani le i ai o lenei tulaga ese i Fortran ona o le gagana e faʻatatau i laina (e le o se mea e ofo ai mo se gagana o lona faʻaogaina o se kata tuʻi). E le mafai ona iai ni au fa'amatalaga. Ma o le umi lava e te manaʻomia ai faʻamatalaga o le matematika e galue ai, e leai se aoga o le i ai o se isi mea e toe faʻafoʻi ai se tau aua atonu e leai se mea e faʻatali e toe faʻafoʻi.

Na aveese tapulaʻa i le oʻo mai o gagana faʻapipiʻi poloka, ae o le taimi lena ua tuai tele. O le eseesega i le va o faʻamatalaga ma faʻamatalaga ua uma ona faʻamautuina. Na pasi mai Fortran i Algol ma oʻo atu ia latou fanau.

A fa'apea o se gagana e faia atoa i fa'amatalaga, e mafai ona e fatuina fa'amatalaga i so'o se auala e te mana'o ai. E mafai ona e tusia (faʻaaoga le syntax Arc)

(if foo (= x 1) (= x 2))

poʻo

(= x (if foo 1 2))

7. O se ituaiga faailoga. O tagata e ese mai manoa, i le tulaga lea e mafai ona e siaki ai le tutusa e ala i le faʻatusatusaina o faʻailoga.

8. O se fa'ailoga mo code faaaogaina o laau faatusa.

9. E maua i taimi uma le gagana atoa. E leai se eseesega manino i le va o le taimi faitau, faʻapipiʻi taimi ma le taʻavale. E mafai ona e fa'apipi'i pe ta'e le code a'o e faitau, pe faitau pe ta'e le code a'o e tu'ufa'atasia, pe faitau pe tu'ufa'atasia le code a'o tamo'e.

O le ta'avale code a'o faitau e mafai ai e tagata fa'aoga ona toe fa'atonu le syntax a Lisp; O le faʻaogaina o le code i le taimi faʻapipiʻi o le faʻavae lea mo macros; taimi fa'aputuga o le fa'avae lea mo le fa'aogaina o le Lisp e fai ma fa'aopoopoga gagana i polokalame e pei o Emacs; ma le mea mulimuli, o le faitau taimi taʻavale e mafai ai e polokalame ona fesoʻotaʻi i le faʻaaogaina o s-faʻaaliga, o se manatu talu ai nei na toe faʻafouina i le XML.

iʻuga

I le taimi muamua na fausia ai le Lisp, o nei manatu e mamao ese mai faiga masani o polokalame na faʻatonuina e meafaigaluega na maua i le tuai o 1950s.

I le aluga o taimi, o le gagana e le masani ai, na faʻaalia i le manuia o gagana lauiloa, na faasolosolo malie atu i le Lisp. Fa'ailoga 1-5 ua talia lautele nei. O le mataitusi 6 ua amata ona fa'aalia i le tulaga masani. Python ei ai le fuaiupu 7 i nisi tulaga, e ui lava e leai se syntax talafeagai. Aitema 8, lea (faatasi ai ma le aitema 9) e mafai ai macros i Lisp, o loʻo i ai pea i le Lisp, masalo ona (a) e manaʻomia ai na puipui poʻo se mea tutusa leaga, ma (e) afai e te faʻaopoopoina lenei faʻaopoopoga fou o le malosi, e te mafaia. ua le toe fai mai ua ia faia se gagana fou, ae ua na o le atiina ae o se gagana fou o le Lisp; -)

E ui lava e aoga lenei mea mo tagata fai polokalame faʻaonaponei, e ese le faʻamatalaina o le Lisp i tulaga o lona eseesega mai auala faʻapitoa e faʻaaogaina i isi gagana. Atonu e le o le mea lea na mafaufau i ai McCarthy. E le'i fuafuaina le Lisp e faasa'o mea sese a Fortran; na foliga mai o se taunuuga o le taumafai fa'atatauga axiomatize.

puna: www.habr.com

Faaopoopo i ai se faamatalaga