Ke eng e ileng ea etsa hore Lisp a khethehe

«Puo e kholo ka ho fetisisa ea mananeo e kileng ea etsoa«
- Alan Kay, "ho Lisp"

Ke eng e ileng ea etsa hore Lisp a khethehe

Ha McCarthy a hlahisa Lisp ho elella bofelong ba lilemo tsa bo-1950, e ne e fapane haholo le lipuo tse neng li le teng, 'me ea bohlokoa ka ho fetisisa e ne e le. Mohloli oa Fortran.

Lisp o hlahisitse mehopolo e mecha e robong:

1. Maemo. Litaelo tsa maemo ke meaho haeba-ha ho le joalo. Hona joale re li nka habobebe. Ba ne ba qapa McCarthy nakong ea nts'etsopele ea Lisp. (Fortran ka nako eo e ne e e-na le lipolelo tsa goto feela, tse amanang haufi-ufi le taelo ea lekala mabapi le hardware ea motheo.) McCarthy, ha a ntse a le komiting ea Algol, o ile a kenya letsoho ho Algol, ho tloha moo ba ileng ba hasana lipuong tse ling.

2. Mofuta oa ts'ebetso. Ho Lisp, mesebetsi ke lintho tsa boemo ba pele - ke mofuta oa data, joalo ka linomoro, likhoele, joalo-joalo, 'me li na le kemelo ea sebele, li ka bolokoa ka mefuta-futa, li ka fetisoa joalo ka likhang, joalo-joalo.

3. Phetoho. Recursion, ehlile, e bile teng e le mohopolo oa lipalo pele ho Lisp, empa Lisp e bile puo ea pele ea lenaneo ho e tšehetsa. (Mohlomong sena se boleloa ho theha mesebetsi e le lintho tsa maemo a pele.)

4. Khopolo e ncha ea mefuta-futa. Ho Lisp, mefuta eohle e fapaneng ke lisupa tse sebetsang hantle. Boleng ke seo mefuta e nang le sona, eseng mefuta e fapaneng, 'me ho abela kapa ho tlama mefuta ho bolela ho kopitsa lintlha, eseng seo ba se supang.

5. Pokello ea lithōle.

6. Mananeo a entsoeng ka lipolelo. Mananeo a Lisp ke lifate tsa lipolelo, tseo e 'ngoe le e 'ngoe ea tsona e khutlisetsang boleng. (Lipolelo tse ling tsa Lisp li ka khutlisa litekanyetso tse ngata.) Sena se fapana le Fortran le lipuo tse ling tse ngata tse atlehileng tse khethollang pakeng tsa “lipolelo” le “lipolelo.”

E ne e le tlhaho ho ba le phapang ena ho Fortran hobane puo e ne e lebisitsoe moleng (ha ho makatse bakeng sa puo eo mokhoa oa eona oa ho kenya e neng e le karete e phunyeletsoeng). U ne u ke ke ua ba le lipolelo tse qotsitsoeng. 'Me hafeela u ne u hloka lipolelo tsa lipalo ho sebetsa, ho ne ho se na thuso ea hore ntho leha e le efe e 'ngoe e khutlise boleng hobane ho ne ho ka' na ha se ke ha e-ba le letho le emetseng ho khutlisetsoa.

Lithibelo li ile tsa tlosoa ha ho fihla lipuo tse hlophisitsoeng hantle, empa ka nako eo e ne e se e le morao haholo. Phapano pakeng tsa lipolelo le lipolelo e se e thehiloe. E ile ea feta ho tloha Fortran ho ea Algol le ho feta ho litloholo tsa bona.

Ha puo e entsoe ka lipolelo feela, u ka qapa lipolelo ka tsela leha e le efe eo ue batlang. U ka ngola kapa (ho sebelisa syntax selikalikoe)

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

kapa

(= x (if foo 1 2))

7. Mofuta oa letšoao. Litlhaku li fapane le likhoele, moo u ka hlahlobang tekano ka ho bapisa lintlha.

8. Tlhaloso bakeng sa khoutu ho sebedisa difate tsa matshwao.

9. Puo eohle e lula e le teng. Ha ho na phapang e totobetseng pakeng tsa nako ea ho bala, ho bokella nako le nako ea ho matha. O ka bokella kapa oa tsamaisa khoutu ha o ntse o bala, kapa oa bala kapa oa tsamaisa khoutu ha o ntse o bokella, kapa oa bala kapa oa bokella khoutu ha e ntse e sebetsa.

Khoutu ea ho matha ha u ntse u bala e lumella basebelisi ho hlophisa syntax ea Lisp; ho sebetsa khoutu ka nako ea ho bokella ke motheo oa macros; ho bokella nako ke motheo oa ho sebelisa Lisp joalo ka puo e atolositsoeng mananeong a kang Emacs; 'me qetellong, ho bala nako ea nako ho lumella mananeo a ho buisana a sebelisa li-s-expressions, khopolo e sa tsoa tsosolosoa ho XML.

fihlela qeto e

Ha Lisp e ne e qaptjoa ka lekhetlo la pele, mehopolo ena e ne e le hole le mekhoa e tloaelehileng ea mananeo e neng e laetsoe ke lisebelisoa tse fumanehang ho elella bofelong ba lilemo tsa bo-1950.

Ha nako e ntse e ea, puo ea kamehla, e kenyelletsoeng ke katleho ea lipuo tse tsebahalang, butle-butle e ile ea fetoha ho ea Lisp. Lintlha tsa 1-5 li se li amoheloa ka bophara. Ntlha ea 6 e qala ho hlaha ho batho ba tloaelehileng. Python e na le polelo ea 7 ka mokhoa o itseng, leha ho se na syntax e loketseng. Ntho ea 8, eo (ka ntlha ea 9) e etsang hore li-macros li khonehe ho Lisp, e ntse e le Lisp feela, mohlomong hobane (a) e hloka masaka ao kapa ntho e mpe ka ho lekana, 'me (b) haeba u eketsa keketseho ena ea morao-rao ea matla, u ka ha ba sa bolela hore ba iqapetse puo e ncha, empa ba se ba qapile puo e ncha ea Lisp; -)

Leha sena se le molemo ho baetsi ba mananeo a sejoale-joale, hoa makatsa ho hlalosa Lisp ho latela phapang ea eona le mekhoa e sa reroang e amohetsoeng ka lipuo tse ling. Sena e kanna ea se be seo McCarthy a neng a se nahana. Lisp e ne e sa etsetsoa ho lokisa liphoso tsa Fortran; e ne e bonahala e le sehlahisoa sa ho leka lipalo tsa axiomatize.

Source: www.habr.com

Eketsa ka tlhaloso