{"id":55281,"date":"2020-01-17T00:00:00","date_gmt":"2020-01-16T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/chto-sdelalo-lisp-osobennym"},"modified":"2020-02-18T14:03:23","modified_gmt":"2020-02-18T11:03:23","slug":"chto-sdelalo-lisp-osobennym","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/chto-sdelalo-lisp-osobennym","title":{"rendered":"Miks tegi Lisp eriliseks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<blockquote><p>\u00ab<i>K\u00f5ige suurem kunagi loodud programmeerimiskeel<\/i>\u00ab<br \/>\n \u2014 Alan Kay, \u00abon Lisp\u00bb<\/p><\/blockquote>\n<p>\n<img decoding=\"async\" alt=\"Miks tegi Lisp eriliseks\" src=\"\/wp-content\/uploads\/2020\/01\/64f1d8e27f54f8acd763bc17d0bfb57b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKui McCarthy l\u00f5i Lispi 1950ndate l\u00f5pus, erines see radikaalselt olemasolevatest keeltest, millest t\u00e4htsaim oli <noindex><a rel=\"nofollow\" href=\"http:\/\/www.paulgraham.com\/history.html\">Fortran<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nLisp h\u00f5lmas \u00fcheksa uut ideed:<\/p>\n<p>1. <b>Tingimuslikud v\u00e4ljendid (Conditionals)<\/b>. Tingimuslikud v\u00e4ljendid on if-then-else konstruktsioon. T\u00e4na peame neid iseenesest m\u00f5istetavaks. Need olid <noindex><a rel=\"nofollow\" href=\"http:\/\/www-formal.stanford.edu\/jmc\/history\/lisp\/node2.html\">leiutatud<\/a><\/noindex> McCarthy poolt Lispi arendamise ajal. (Fortranil olid siis ainult goto-lausungid, mis olid tihedalt seotud aluseks oleva riistvaraga.) McCarthy, olles Algoli komitees, t\u00f5i tingimuslikud v\u00e4ljendid Algolisse, kust need levisid teistele keelele.<\/p>\n<p>2. <b>Funktsioonit\u00fc\u00fcbid (A function type)<\/b>. Lispis on funktsioonid esmaklassilised objektid - need on andmet\u00fc\u00fcbid, nagu numbrid, stringid jne, ja neil on t\u00e4henduspilt, neid saab salvestada muutujatesse, neid saab edastada argumentidena jne. <\/p>\n<p>3. <b>Rekursioon (Recursion)<\/b>. Rekursioon, muidugi, eksisteeris matemaatilise kontseptsioonina enne Lispit, kuid Lisp oli esimene programmeerimiskeel, mis seda toetas. (See v\u00f5ib-olla t\u00e4hendab funktsioonide loomist esmaklassiliste objektidena.)<\/p>\n<p>4. <b>Uus muutuja kontseptsioon (A new concept of variables)<\/b>. Lipsis on k\u00f5ik muutujad t\u00f5husad n\u00e4itajad. V\u00e4\u00e4rtused on see, mis on t\u00fc\u00fcpide juures, mitte muutujate, ja muutujate m\u00e4\u00e4ramine v\u00f5i sidumine t\u00e4hendab n\u00e4itajate kopeerimist, mitte seda, millele nad viitavad.<\/p>\n<p>5. <b>Pr\u00fcgi kogumine (Garbage-collection)<\/b>.<\/p>\n<p>6. <b>Programmid koosnevad v\u00e4ljenditest (Programs composed of expressions)<\/b>. Lipsis olevad programmid on v\u00e4ljendite puu, millest iga\u00fchel on tagastatav v\u00e4\u00e4rtus. (M\u00f5ned Lisp-v\u00e4ljendid v\u00f5ivad tagastada mitmeid v\u00e4\u00e4rtusi.) See on vastand Fortranile ja paljudele teistele edukatele keeltele, mis teevad vahet \"v\u00e4ljendite\" ja \"v\u00e4idete\" vahel.<\/p>\n<p>Fortranis oli loomulik omada sellist eristust, kuna keel oli lineaarselt orienteeritud (pole \u00fcllatav, et keele sisendvorming oli perforatsioonikaardid). Te ei saanud omada sisemist v\u00e4idet. Ja kuigi matemaatilisi v\u00e4ljendeid oli vaja t\u00f6\u00f6ks, ei olnud m\u00f5tet sundida midagi muud v\u00e4\u00e4rtust tagastama, kuna v\u00f5is olla midagi, mis ootas tagastamist.<\/p>\n<p>Piirangud eemaldati plokiliselt struktureeritud keelte tulekuga, kuid hiljem oli juba liiga hilja. Erinevus v\u00e4ljendite ja v\u00e4idete vahel oli juba juurdunud. See kandus Fortranist Algoli ja edasi nende j\u00e4reltulijatesse.<\/p>\n<p>Kui keel koosneb t\u00e4ielikult avaldustest, v\u00f5ite koostada avaldusi oma soovide j\u00e4rgi. Saate kirjutada kas (kasutades s\u00fcntaksit\u00a0<noindex><a rel=\"nofollow\" href=\"http:\/\/www.paulgraham.com\/arc.html\">Arc<\/a><\/noindex>)<\/p>\n<pre><code class=\"lisp\">(if foo (= x 1) (= x 2))<\/code><\/pre>\n<p>\nv\u00f5i<\/p>\n<pre><code class=\"lisp\">(= x (if foo 1 2))<\/code><\/pre>\n<p>\n7. <b>S\u00fcmbolit\u00fc\u00fcp (A symbol type)<\/b>. S\u00fcmbolid erinevad stringsest, seega saate v\u00f5rrelda neid v\u00f5rreldes pointereid.<\/p>\n<p>8. <b>Koodi notaator (A notation for code)<\/b> kasutades s\u00fcmbolite puid.<\/p>\n<p>9. <b>Kogu keel on alati saadaval (The whole language always available)<\/b>. Pole selget erinevust lugemise, kompileerimise ja k\u00e4itamise aja vahel. Saate kompileerida v\u00f5i k\u00e4ivitada koodi lugemise ajal, v\u00f5i lugeda v\u00f5i k\u00e4ivitada koodi, kui kompileerite, v\u00f5i lugeda v\u00f5i kompileerida koodi k\u00e4itamise ajal.<\/p>\n<p>Koodi k\u00e4ivitamine lugemise k\u00e4igus v\u00f5imaldab kasutajatel Lisp-s\u00fcntaksit \u00fcmber programmeerida; koodi k\u00e4ivitamine kompileerimise ajal on makrode aluseks; k\u00e4ivitamine t\u00e4itmise ajal on aluseks Lispide kasutamisele laiendamise keeleks sellistes programmides nagu Emacs; ja l\u00f5puks, lugemine t\u00e4itmise ajal v\u00f5imaldab programmide koost\u00f6\u00f6d, kasutades s-v\u00e4ljendeid, mis on idee, mis on hiljuti taasleiutatud XML-is.<\/p>\n<h4>Kokkuv\u00f5te<\/h4>\n<p>\nKui Lisp ainult leiutati, olid k\u00f5ik need ideed kaugel tavalistest programmeerimistavadest, mida dikteeris 1950ndate l\u00f5pus kergesti saadaval olnud riistvara.<\/p>\n<p>Aja jooksul on vaikimisi keel, mis on kehastatud populaarsete keelte edusse, j\u00e4rk-j\u00e4rgult arenenud suunas Lisp. Punktid 1-5 on n\u00fc\u00fcd laialdaselt levinud. Punkt 6 hakkab ilmnema p\u00f5hivoolus. Pythonis on mingis vormis punkt 7, kuigi sobivat s\u00fcntaksit pole. Punkt 8, mis (koos punktiga 9) v\u00f5imaldab makrosid Lispis, eksisteerib siiani ainult Lispis, v\u00f5ib-olla sellep\u00e4rast, et (a) see vajab neid sulgusid v\u00f5i midagi sama halba, ja (b) kui lisate selle viimase j\u00f5udluse suurendamise, siis ei saa enam v\u00e4ita, et olete loonud uue keele, vaid olete lihtsalt v\u00e4lja t\u00f6\u00f6tanud uue Lisp-dialekti; -)<\/p>\n<p>Kuigi see on kasulik t\u00e4nap\u00e4eva programmeerijatele, on kummaline kirjeldada Lispi selle erinevuste kaudu teiste keelte juhuslikest tehnikatest. V\u00f5ib-olla ei m\u00f5elnud McCarthy sellele. Lisp ei olnud loodud Fortrani vigu parandama; see ilmus pigem k\u00f5rvalproduktina katsest <noindex><a rel=\"nofollow\" href=\"http:\/\/www.paulgraham.com\/rootsoflisp.html\">aktsiomaatisida arvutusi<\/a><\/noindex>.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/476994\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>&#171;\u0412\u0435\u043b\u0438\u0447\u0430\u0439\u0448\u0438\u0439 \u0438\u0437 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&#171; \u2014 Alan Kay, \u00abon Lisp\u00bb \u041a\u043e\u0433\u0434\u0430 \u041c\u0430\u043a\u043a\u0430\u0440\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b Lisp \u0432 \u043a\u043e\u043d\u0446\u0435 1950-\u0445, \u043e\u043d \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u043b\u0441\u044f \u043e\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u0441\u0430\u043c\u044b\u043c \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u044b\u043b Fortran. Lisp \u0432\u043e\u043f\u043b\u043e\u0442\u0438\u043b \u0434\u0435\u0432\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0445 \u0438\u0434\u0435\u0439: 1. \u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0432\u044b\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043d\u0438\u044f (Conditionals).\u00a0\u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0432\u044b\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e if-then-else \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f. \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u0438\u0445 \u043a\u0430\u043a \u0434\u043e\u043b\u0436\u043d\u043e\u0435. \u041e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u044b \u041c\u0430\u043a\u043a\u0430\u0440\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":55282,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55281","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"&quot;\u0412\u0435\u043b\u0438\u0447\u0430\u0439\u0448\u0438\u0439 \u0438\u0437 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&quot; \u2014 Alan Kay, \u00abon Lisp\u00bb\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/chto-sdelalo-lisp-osobennym\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u043e Lisp \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"&quot;\u0412\u0435\u043b\u0438\u0447\u0430\u0439\u0448\u0438\u0439 \u0438\u0437 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&quot; \u2014 Alan Kay, \u00abon Lisp\u00bb\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/chto-sdelalo-lisp-osobennym\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-16T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Mis tegi Lispi eriliseks | ProHoster","description":"\"K\u00f5ige suurem kunagi loodud programmeerimiskeel\" \u2014 Alan Kay, \u00abon Lisp\u00bb","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/chto-sdelalo-lisp-osobennym","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u043e Lisp \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u043c | ProHoster","og:description":"&quot;\u0412\u0435\u043b\u0438\u0447\u0430\u0439\u0448\u0438\u0439 \u0438\u0437 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&quot; \u2014 Alan Kay, \u00abon Lisp\u00bb","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/chto-sdelalo-lisp-osobennym","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-16T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55281","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:46:29","updated":"2022-10-01 02:03:35","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/55281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=55281"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/55281\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/55282"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=55281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=55281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=55281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}