He aha te mea motuhake a Lisp

«Ko te reo hootaka tino nui i hanga«
— Alan Kay, "i runga i te Lisp"

He aha te mea motuhake a Lisp

I te wa i whakawhanakehia ai e McCarthy a Lisp i te mutunga o nga tau 1950, he tino rerekee mai i nga reo o naianei, ko te mea nui ko Fortran.

I whakauruhia e Lisp nga whakaaro hou e iwa:

1. Nga here. Ko nga korero here he hanga-ki-ka-tetahi atu. Inaianei kei te tango noa tatou i a raatau. Ko ratou mea hanga McCarthy i te wa o te whanaketanga o Lisp. (Ko Fortran i taua wa ko nga korero goto anake, i hono tata ki te tohutohu manga mo te taputapu o raro.) I a McCarthy, i a ia i te komiti o Algol, i tuku herenga ki a Algol, mai i reira ka horahia ki etahi atu reo.

2. He momo mahi. I roto i te Lisp, ko nga mahi he mea akomanga tuatahi - he momo raraunga, pera i nga nama, aho, me etahi atu, he tohu mooni, ka taea te penapena ki nga taurangi, ka taea te tuku hei tohenga, aha atu.

3. Recursion. Ko te Recursion, ko te tikanga, i noho hei ariā pangarau i mua i a Lisp, engari ko Lisp te reo kaupapa tuatahi hei tautoko. (Kei te whakaaro pea tenei ki te hanga i nga mahi hei taonga akomanga tuatahi.)

4. He ariā hou mo nga taurangi. I roto i te Lisp, he tohu whai hua nga taurangi katoa. Ko nga uara he aha nga momo, ehara i nga taurangi, me te tautapa, herea ranei nga taurangi ko te kape i nga tohu tohu, ehara i te mea e tohu ana.

5. Kohi para.

6. Ko nga kaupapa i titoa mai i nga korero. Ko nga kaupapa Lisp he rakau korero, ka whakahoki mai he uara. (Ka taea e etahi korero Lisp te whakahoki i nga uara maha.) He rereke tenei ki a Fortran me etahi atu reo angitu e wehewehe ana i waenga i nga "whakapuaki" me nga "korero."

He mea maori te whai mana i roto i Fortran na te mea i ahu mai te reo ki te raina (kaore i te miharo mo te reo he kaari werohia te whakatakotoranga whakauru). Kaore i taea e koe te whai korero kohanga. A, i te wa e hiahia ana koe ki nga korero pangarau ki te mahi, karekau he take ki te whakahoki i tetahi atu uara na te mea kaore pea he mea e tatari ana kia whakahokia mai.

I whakakorehia nga here i te taenga mai o nga reo hanga-a-poraka, engari i taua wa kua tomuri rawa. Kua whakatauhia te wehewehenga o nga korero me nga korero. I haere mai i Fortran ki Algol me o raatau uri.

Ina hanga katoatia te reo ki nga korero, ka taea e koe te tito kupu i nga huarahi e hiahia ana koe. Ka taea e koe te tuhi (ma te whakamahi i te syntax Arc)

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

ranei

(= x (if foo 1 2))

7. He momo tohu. He rereke nga tohu mai i nga aho, ka taea e koe te tirotiro mo te rite ma te whakataurite i nga tohu.

8. He tohu mo te waehere te whakamahi rakau tohu.

9. Kei te waatea tonu te reo katoa. Karekau he rereketanga i waenga i te wa panui, te wa whakahiato me te wa whakahaere. Ka taea e koe te whakahiato, te whakahaere waehere ranei i a koe e panui ana, e panui ana, e whakahaere ana ranei i te waehere i a koe e whakahiato ana, e panui ana, e whakahiato ana ranei i te waehere i te wa e rere ana.

Ko te whakahaere i te waehere i te wa e panui ana ka taea e nga kaiwhakamahi te reprogram i te wetereo a Lisp; Ko te whakahaere waehere i te wa whakahiato te putake mo nga tonotono; Ko te whakahiato wa whakahaere te turanga mo te whakamahi i te Lisp hei reo toronga i roto i nga kaupapa penei i te Emacs; ka mutu, ka taea e te panui wa-haere nga kaupapa ki te whakawhiti korero ma te whakamahi i nga kupu-s, he whakaaro i hangaia houtia i roto i te XML.

mutunga

I te wa tuatahi i hangahia ai a Lisp, he tawhiti noa atu enei whakaaro mai i nga mahi whakahoahoa tikanga na nga taputapu e waatea ana i te mutunga o te 1950s.

I te roanga o te wa, ka tipu haere te reo taunoa, e mau ana i te angitu o nga reo rongonui, ki a Lisp. Ko nga tohu 1-5 kua whakaaetia inaianei. Ko te tohu 6 kei te timata ki te puta i te auraki. I roto i te Python, he whiti 7 kei etahi ahua, ahakoa karekau he wetereo tika. Ko te nama take 8, (me te nama take 9) ka taea te tonotono i Lisp, kei te Lisp anake, na te mea (a) me hiahia aua reu, tetahi mea kino ranei, a (b) mena ka taapirihia e koe tenei pikinga hou o te mana, ka taea e koe. kua kore e kii kua hanga e ia he reo hou, engari kua whakawhanakehia he reo hou o Lisp; -)

Ahakoa he pai tenei mo nga kaitakataka hou, he mea ke ki te whakaahua i a Lisp i runga i tona rereketanga mai i nga tikanga matapōkere i whakamahia i etahi atu reo. Ehara pea tenei i te whakaaro a McCarthy. Kaore i hangaia a Lisp hei whakatika i nga hapa a Fortran; i puta ake ano he hua o te whakamatautau axiomatize tātaitanga.

Source: will.com

Tāpiri i te kōrero