He aha ka mea i hana kūikawā ai ʻo Lisp

«ʻO ka ʻōlelo papahana nui loa i hana ʻia«
- Alan Kay, "ma Lisp"

He aha ka mea i hana kūikawā ai ʻo Lisp

I ka wā i hoʻomohala ai ʻo McCarthy iā Lisp i ka hopena o nā makahiki 1950, ʻokoʻa loa ia mai nā ʻōlelo e kū nei, ʻo ka mea nui loa o ia mau ʻōlelo. Fortran.

Ua hoʻolauna ʻo Lisp i ʻeiwa mau manaʻo hou:

1. Kūlana. ʻO nā ʻōlelo kuʻuna he mau hana inā-a laila. I kēia manawa, lawe mākou iā lākou no ka mea. ʻO lākou hana ʻia McCarthy i ka wā o ka hoʻomohala ʻana o Lisp. (ʻO Fortran i kēlā manawa he mau ʻōlelo goto wale nō, pili kokoke i kahi ʻōlelo aʻoaʻo o ka lālā e pili ana i ka hāmeʻa lalo.) ʻO McCarthy, ʻoiai ma ke komite Algol, hāʻawi i nā kūlana i Algol, kahi i laha ai lākou i nā ʻōlelo ʻē aʻe.

2. He ʻano hana. I loko o Lisp, he mau mea papa mua nā hana - he ʻano ʻikepili lākou, e like me nā helu, nā kaula, a me nā mea ʻē aʻe, a loaʻa kahi hōʻike maoli, hiki ke mālama ʻia i nā mea hoʻololi, hiki ke hāʻawi ʻia e like me nā hoʻopaʻapaʻa, etc.

3. Hoʻihoʻi hou. ʻO ka Recursion, ʻoiaʻiʻo, ua ola ʻo ia ma ke ʻano he manaʻo makemakika ma mua o Lisp, akā ʻo Lisp ka ʻōlelo papahana mua e kākoʻo iā ia. (Hōʻike ʻia paha kēia i ka hana ʻana i nā hana ma ke ʻano he mea papa mua.)

4. He manaʻo hou o nā mea hoʻololi. Ma Lisp, ʻo nā mea hoʻololi āpau he mau kuhikuhi kūpono. ʻO nā waiwai ke ʻano o nā ʻano, ʻaʻole nā ​​​​mea hoʻololi, a ʻo ka hāʻawi ʻana a i ʻole ka hoʻopaʻa ʻana i nā mea hoʻololi ke ʻano o ke kope ʻana i nā kuhikuhi, ʻaʻole ka mea a lākou e kuhikuhi ai.

5. ʻOhi ʻōpala.

6. Nā papahana i haku ʻia me nā ʻōlelo. ʻO nā polokalamu Lisp nā kumu lāʻau o nā hōʻike, e hoʻihoʻi kēlā me kēia i kahi waiwai. (Hiki i kekahi mau ʻōlelo Lisp ke hoʻihoʻi i nā waiwai he nui.) Hoʻohālikelike kēia me Fortran a me nā ʻōlelo kūleʻa ʻē aʻe he nui e hoʻokaʻawale i waena o nā "hōʻike" a me "nā ʻōlelo."

He mea maʻamau ka loaʻa ʻana o kēia ʻokoʻa ma Fortran no ka mea he laina laina ka ʻōlelo (ʻaʻole he mea kupanaha no ka ʻōlelo nona ka palapala hoʻokomo he kāleka kuʻi). ʻAʻole hiki iā ʻoe ke loaʻa nā ʻōlelo pūnana. A i ka wā e pono ai ʻoe i nā hōʻike makemakika e hana, ʻaʻohe kumu o ka hoʻihoʻi ʻana i kekahi mea ʻē aʻe no ka mea ʻaʻohe mea e kali nei e hoʻihoʻi ʻia.

Ua hoʻopau ʻia nā kapu me ka hiki ʻana mai o nā ʻōlelo i hoʻonohonoho ʻia i ka poloka, akā i ia manawa ua lohi loa. Ua hoʻokumu ʻia ka ʻokoʻa ma waena o nā ʻōlelo a me nā ʻōlelo. Ua hala ia mai Fortran a Algol a hiki i kā lākou poʻe mamo.

Ke hana ʻia kahi ʻōlelo me nā ʻōlelo, hiki iā ʻoe ke haku i nā ʻōlelo i ke ʻano āu e makemake ai. Hiki iā ʻoe ke kākau (me ka hoʻohana ʻana i ka syntax kakaka)

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

ai ole ia,

(= x (if foo 1 2))

7. He ʻano hōʻailona. He ʻokoʻa nā ʻano mai nā kaula, a laila hiki iā ʻoe ke nānā i ke kaulike ma ka hoʻohālikelike ʻana i nā kuhikuhi.

8. He notation no ke code hoʻohana i nā lāʻau hōʻailona.

9. Loaʻa mau ka ʻōlelo holoʻokoʻa. ʻAʻohe ʻokoʻa ʻokoʻa ma waena o ka manawa heluhelu, ka manawa hōʻuluʻulu a me ka manawa holo. Hiki iā ʻoe ke hōʻuluʻulu a holo i ke code ke heluhelu ʻoe, a i ʻole heluhelu a holo i ke code i ka wā e hoʻopili ai ʻoe, a i ʻole heluhelu a hōʻuluʻulu i ka code i ka wā e holo ana.

Ke holo nei ke code i ka heluhelu ʻana e hiki ai i nā mea hoʻohana ke hoʻonohonoho hou i ka syntax a Lisp; ʻO ka holo ʻana i ka code i ka manawa hōʻuluʻulu ke kumu no nā macros; ʻO ka hōʻuluʻulu manawa holo ke kumu no ka hoʻohana ʻana iā Lisp ma ke ʻano he ʻōlelo hoʻonui i nā papahana e like me Emacs; a ʻo ka hope loa, ʻo ka heluhelu ʻana i ka wā holo e hiki ai i nā polokalamu ke kamaʻilio me ka hoʻohana ʻana i nā s-expressions, kahi manaʻo i hoʻokumu hou ʻia ma XML.

hopena

I ka wā i hana mua ʻia ai ʻo Lisp, ua mamao loa kēia mau manaʻo mai nā hana hoʻolālā maʻamau i kuhikuhi ʻia e nā lako i loaʻa i ka hopena o 1950s.

I ka hala ʻana o ka manawa, ua ulu mālie ka ʻōlelo paʻamau, i hoʻopili ʻia e ka kūleʻa o nā ʻōlelo kaulana, i Lisp. Ua ʻae nui ʻia nā helu 1-5. Ke hoʻomaka nei ka helu 6 e ʻike ʻia ma ke kahawai. Ma Python, aia kahi māhele 7 ma kekahi ʻano, ʻoiai ʻaʻohe syntax kūpono. 'ikamu 8, 'o ia (me ka 'ikamu 9) i hiki ai i nā macros ma Lisp, aia nō ma Lisp wale nō, no ka mea (a) koi 'ia kēlā mau pale a i 'ole kekahi mea like 'ino, a (b) inā 'oe e ho'ohui i kēia pi'i hou o ka mana, hiki iā 'oe. ʻaʻole ʻōlelo hou ua haku ʻo ia i kahi ʻōlelo hou, akā ua hoʻomohala i kahi dialect hou o Lisp; -)

ʻOiai he mea maikaʻi kēia no nā polokalamu polokalamu hou, he mea ʻē ka wehewehe ʻana iā Lisp ma ke ʻano o kona ʻokoʻa mai nā ʻano loea i hoʻohana ʻia ma nā ʻōlelo ʻē aʻe. ʻAʻole paha kēia ka manaʻo o McCarthy. ʻAʻole i hoʻolālā ʻia ʻo Lisp e hoʻoponopono i nā hewa o Fortran; ua ʻike ʻia ma ke ʻano he hopena o ka hoʻāʻo ʻana axiomatize helu.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka