ලිස්ප් විශේෂ කළ දේ

«මෙතෙක් නිර්මාණය කරන ලද ශ්‍රේෂ්ඨතම ක්‍රමලේඛන භාෂාව«
— ඇලන් කේ, "ලිස්ප් මත"

ලිස්ප් විශේෂ කළ දේ

1950 ගණන්වල අගභාගයේදී මැකාති ලිස්ප් සංවර්ධනය කරන විට, එය පවතින භාෂාවලට වඩා රැඩිකල් ලෙස වෙනස් වූ අතර, ඒවායින් වඩාත්ම වැදගත් වූයේ ෆෝට්රාන්.

ලිස්ප් නව අදහස් නවයක් මූර්තිමත් කළේය:

1. කොන්දේසිකොන්දේසි යනු වෙනත් නම් ගොඩනැගීම් ය. අපි දැන් ඒවා සාමාන්‍ය දෙයක් ලෙස සලකමු. ඒවා සොයා ගන්නා ලදී ලිස්ප් සංවර්ධනය අතරතුර මැකාති. (ඒ කාලයේ ෆෝට්‍රාන් සතුව තිබුණේ යටින් පවතින දෘඩාංග පිළිබඳ ශාඛා උපදෙස් සමඟ සමීපව බැඳී ඇති ගොටෝ ප්‍රකාශන පමණි.) මැකාති, ඇල්ගොල් කමිටුවේ සිටියදී, ඇල්ගොල් වෙත කොන්දේසි හඳුන්වා දුන් අතර, එතැන් සිට ඒවා වෙනත් භාෂාවලට ව්‍යාප්ත විය.

2. ක්‍රියාකාරී වර්ග (A ශ්‍රිත වර්ගය)Lisp හි, ශ්‍රිත යනු පළමු පන්තියේ වස්තූන් වේ - ඒවා සංඛ්‍යා, නූල් ආදිය මෙන් දත්ත වර්ගයක් වන අතර වචනාර්ථ නිරූපණයක් ඇති අතර, විචල්‍යයන් තුළ ගබඩා කළ හැකිය, තර්ක ලෙස සම්මත කළ හැකිය, යනාදිය.

3. පුනරාවර්තනයඇත්ත වශයෙන්ම, Lisp ට පෙර ගණිතමය සංකල්පයක් ලෙස පුනරාවර්තනය පැවතුනි, නමුත් එයට සහාය දුන් පළමු ක්‍රමලේඛන භාෂාව Lisp විය. (මෙය සමහර විට පළමු පන්තියේ වස්තූන් ලෙස ශ්‍රිත නිර්මාණය කිරීමේදී ගම්‍ය වේ.)

4. විචල්‍යයන් පිළිබඳ නව සංකල්පයක්Lisp හි, සියලුම විචල්‍යයන් ඵලදායී ලෙස දර්ශකයන් වේ. අගයන් යනු විචල්‍යයන් නොව, ඇති වර්ග වන අතර, විචල්‍යයන් පැවරීම හෝ බන්ධනය කිරීම යනු දර්ශකයන් පිටපත් කිරීම මිස ඒවා යොමු කරන දේ නොවේ.

5. කසළ එකතු කිරීම.

6. වැඩසටහන් ප්‍රකාශන වලින් සමන්විත වේ.Lisp වැඩසටහන් යනු ප්‍රකාශන ගස් වන අතර, ඒ සෑම එකක්ම අගයක් ආපසු ලබා දෙයි. (සමහර Lisp ප්‍රකාශන බහු අගයන් ආපසු ලබා දිය හැක.) මෙය Fortran සහ "ප්‍රකාශන" සහ "ප්‍රකාශන" අතර වෙනස හඳුනා ගන්නා තවත් බොහෝ සාර්ථක භාෂා සමඟ වෙනස් වේ.

ෆෝට්‍රාන් හි මෙම වෙනස තිබීම ස්වාභාවික වූයේ භාෂාව රේඛා-නැඹුරු වූ බැවිනි (ආදාන ආකෘතිය පන්ච් කාඩ්පතක් වූ භාෂාවක් සඳහා පුදුමයක් නොවේ). ඔබට ප්‍රකාශන ඇතුළත් කළ නොහැක. ඔබට වැඩ කිරීමට ගණිතමය ප්‍රකාශන අවශ්‍ය වන තාක් කල්, වෙනත් කිසිවක් අගයක් ආපසු ලබා දීමේ තේරුමක් නැත, මන්ද ප්‍රතිලාභයක් බලාපොරොත්තුවෙන් කිසිවක් නොතිබිය හැකිය.

බ්ලොක්-ව්‍යුහගත භාෂා පැමිණීමත් සමඟ මෙම සීමාවන් ඉවත් කරන ලද නමුත් ඒ වන විට එය ප්‍රමාද වැඩිය. ප්‍රකාශන සහ ප්‍රකාශන අතර වෙනස දැනටමත් මුල් බැස ගෙන තිබුණි. එය ෆෝට්‍රාන් සිට ඇල්ගොල් දක්වා සහ ඔවුන්ගේ පරම්පරාවන් දක්වා ගෙන යන ලදී.

භාෂාවක් සම්පූර්ණයෙන්ම ප්‍රකාශන වලින් සෑදී ඇති විට, ඔබට අවශ්‍ය පරිදි ප්‍රකාශන රචනා කළ හැකිය. ඔබට ලිවිය හැකිය (වාක්‍ය ඛණ්ඩය භාවිතයෙන් චක්රය)

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

හෝ

(= x (if foo 1 2))

7. සංකේත වර්ගයක්සංකේත නූල් වලට වඩා වෙනස් වේ, එවැනි අවස්ථාවක ඔබට දර්ශකයන් සංසන්දනය කිරීමෙන් සමානාත්මතාවය පරීක්ෂා කළ හැකිය.

8. කේතය සඳහා සංකේතයක් සංකේත ගස් භාවිතා කිරීම.

9. මුළු භාෂාවම සැමවිටම ලබා ගත හැකිය.කියවීමේ කාලය, සම්පාදන කාලය සහ ක්‍රියාත්මක කිරීමේ කාලය අතර පැහැදිලි වෙනසක් නොමැත. ඔබට කියවන අතරතුර කේතය සම්පාදනය කිරීමට හෝ ක්‍රියාත්මක කිරීමට හෝ සම්පාදනය කරන අතරතුර කේතය කියවීමට හෝ ක්‍රියාත්මක කිරීමට හෝ ක්‍රියාත්මක වන අතරතුර කේතය කියවීමට හෝ සම්පාදනය කිරීමට හැකිය.

කියවන අතරතුර කේතය ක්‍රියාත්මක කිරීම පරිශීලකයින්ට Lisp වාක්‍ය ඛණ්ඩය නැවත ක්‍රමලේඛනය කිරීමට ඉඩ සලසයි; සම්පාදනය කරන අතරතුර කේතය ක්‍රියාත්මක කිරීම මැක්‍රෝ සඳහා පදනම වේ; Emacs වැනි වැඩසටහන් වල දිගු භාෂාවක් ලෙස Lisp භාවිතා කිරීම සඳහා පදනම වන්නේ ධාවනය වන අතරතුර සම්පාදනය කිරීමයි; අවසාන වශයෙන්, ධාවන කාල කියවීම මඟින් වැඩසටහන් වලට s-ප්‍රකාශන භාවිතයෙන් සන්නිවේදනය කිරීමට ඉඩ සලසයි, මෙය මෑතකදී XML හි නැවත සොයා ගන්නා ලද අදහසකි.

නිගමනය

ලිස්ප් මුලින්ම සොයා ගන්නා විට, මෙම සියලු අදහස් 1950 ගණන්වල අගභාගයේ පැවති දෘඩාංග මගින් නියම කරන ලද පොදු ක්‍රමලේඛන භාවිතයන්ගෙන් බොහෝ දුරස් විය.

කාලයත් සමඟ, ජනප්‍රිය භාෂාවල සාර්ථකත්වය තුළ අන්තර්ගත වූ පෙරනිමි භාෂාව ක්‍රමයෙන් Lisp දෙසට පරිණාමය වී ඇත. 1-5 කරුණු දැන් පුළුල් ලෙස සම්මත වී ඇත. 6 වන කරුණ ප්‍රධාන ධාරාවේ පෙනෙන්නට පටන් ගෙන තිබේ. Python හි 7 වන කරුණේ යම් ආකාරයක් ඇත, නමුත් එයට සුදුසු වාක්‍ය ඛණ්ඩයක් නොමැත. (9 වන කරුණ සමඟ) Lisp හි මැක්‍රෝස් කළ හැකි 8 වන කරුණ, තවමත් Lisp සඳහා සුවිශේෂී වේ, බොහෝ විට (අ) එයට එම වරහන් හෝ ඒ හා සමානව නරක දෙයක් අවශ්‍ය වන නිසා සහ (ආ) ඔබ මෙම අවසාන බලයේ වැඩිවීම එකතු කළහොත්, ඔබට තවදුරටත් නව භාෂාවක් නිර්මාණය කළ බව ප්‍රකාශ කළ නොහැක, නමුත් හුදෙක් Lisp හි නව උපභාෂාවක් වර්ධනය කර ඇත.

මෙය නූතන ක්‍රමලේඛකයින්ට ප්‍රයෝජනවත් වුවද, අනෙකුත් භාෂා විසින් භාවිතා කරන අහඹු ශිල්පීය ක්‍රමවලින් එහි වෙනස අනුව Lisp විස්තර කිරීම අමුතුයි. සමහරවිට මෙය McCarthy අදහස් කළ දෙයක් නොවේ. Lisp නිර්මාණය කර ඇත්තේ Fortran ගේ වැරදි නිවැරදි කිරීමට නොවේ; ඒ වෙනුවට, එය උත්සාහයක අතුරු ඵලයක් ලෙස මතු විය. ගණනය කිරීම් අක්ෂීයකරණය කරන්න.

මූලාශ්රය: www.habr.com

DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත අඩවි සඳහා විශ්වාසදායක සත්කාරකත්වය මිලදී ගන්න 🔥 DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත විශ්වාසදායක වෙබ් අඩවි සත්කාරකත්වය මිලදී ගන්න | ProHoster