CINXE.COM
Lisp (programming language) - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Lisp (programming language) - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"1925dcde-3344-4252-a271-46ae63ab224d","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Lisp_(programming_language)","wgTitle":"Lisp (programming language)","wgCurRevisionId":1256161736,"wgRevisionId":1256161736,"wgArticleId":18016,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template wayback links","Articles with short description","Short description is different from Wikidata","Articles with example Lisp (programming language) code","Articles containing potentially dated statements from 2010","All articles containing potentially dated statements","All accuracy disputes","Articles with disputed statements from April 2013","All articles with unsourced statements","Articles with unsourced statements from November 2008", "CS1: long volume value","Pages using Sister project links with wikidata namespace mismatch","Pages using Sister project links with wikidata mismatch","Pages using Sister project links with hidden wikidata","Lisp (programming language)","Academic programming languages","American inventions","Dynamically typed programming languages","Extensible syntax programming languages","Functional languages","Lisp programming language family","Programming languages","Programming languages created in 1958"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Lisp_(programming_language)","wgRelevantArticleId":18016,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0, "wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":90000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q132874","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options": "loading","ext.cite.styles":"ready","ext.pygments":"ready","ext.math.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","mediawiki.page.media","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface", "ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.math.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Lisp_logo.svg/1200px-Lisp_logo.svg.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1200"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Lisp_logo.svg/800px-Lisp_logo.svg.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="800"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Lisp_logo.svg/640px-Lisp_logo.svg.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="640"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Lisp (programming language) - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Lisp_(programming_language)"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Lisp_(programming_language)&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Lisp_(programming_language)"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Lisp_programming_language rootpage-Lisp_programming_language skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Lisp+%28programming+language%29" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Lisp+%28programming+language%29" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Lisp+%28programming+language%29" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Lisp+%28programming+language%29" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>History</span> </div> </a> <button aria-controls="toc-History-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle History subsection</span> </button> <ul id="toc-History-sublist" class="vector-toc-list"> <li id="toc-Timeline" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Timeline"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Timeline</span> </div> </a> <ul id="toc-Timeline-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Connection_to_artificial_intelligence" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Connection_to_artificial_intelligence"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Connection to artificial intelligence</span> </div> </a> <ul id="toc-Connection_to_artificial_intelligence-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Genealogy_and_variants" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Genealogy_and_variants"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3</span> <span>Genealogy and variants</span> </div> </a> <ul id="toc-Genealogy_and_variants-sublist" class="vector-toc-list"> <li id="toc-Historically_significant_dialects" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Historically_significant_dialects"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3.1</span> <span>Historically significant dialects</span> </div> </a> <ul id="toc-Historically_significant_dialects-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-2000_to_present" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#2000_to_present"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.4</span> <span>2000 to present</span> </div> </a> <ul id="toc-2000_to_present-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Major_dialects" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Major_dialects"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Major dialects</span> </div> </a> <button aria-controls="toc-Major_dialects-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Major dialects subsection</span> </button> <ul id="toc-Major_dialects-sublist" class="vector-toc-list"> <li id="toc-Standardized_dialects" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Standardized_dialects"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Standardized dialects</span> </div> </a> <ul id="toc-Standardized_dialects-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Language_innovations" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Language_innovations"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Language innovations</span> </div> </a> <ul id="toc-Language_innovations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Syntax_and_semantics" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Syntax_and_semantics"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Syntax and semantics</span> </div> </a> <button aria-controls="toc-Syntax_and_semantics-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Syntax and semantics subsection</span> </button> <ul id="toc-Syntax_and_semantics-sublist" class="vector-toc-list"> <li id="toc-Symbolic_expressions_(S-expressions)" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Symbolic_expressions_(S-expressions)"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Symbolic expressions (S-expressions)</span> </div> </a> <ul id="toc-Symbolic_expressions_(S-expressions)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Lists" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Lists"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Lists</span> </div> </a> <ul id="toc-Lists-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Operators" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Operators"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Operators</span> </div> </a> <ul id="toc-Operators-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Lambda_expressions_and_function_definition" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Lambda_expressions_and_function_definition"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.4</span> <span>Lambda expressions and function definition</span> </div> </a> <ul id="toc-Lambda_expressions_and_function_definition-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Atoms" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Atoms"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5</span> <span>Atoms</span> </div> </a> <ul id="toc-Atoms-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Conses_and_lists" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Conses_and_lists"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6</span> <span>Conses and lists</span> </div> </a> <ul id="toc-Conses_and_lists-sublist" class="vector-toc-list"> <li id="toc-S-expressions_represent_lists" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#S-expressions_represent_lists"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6.1</span> <span>S-expressions represent lists</span> </div> </a> <ul id="toc-S-expressions_represent_lists-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-List-processing_procedures" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#List-processing_procedures"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6.2</span> <span>List-processing procedures</span> </div> </a> <ul id="toc-List-processing_procedures-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Shared_structure" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Shared_structure"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6.3</span> <span>Shared structure</span> </div> </a> <ul id="toc-Shared_structure-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Self-evaluating_forms_and_quoting" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Self-evaluating_forms_and_quoting"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.7</span> <span>Self-evaluating forms and quoting</span> </div> </a> <ul id="toc-Self-evaluating_forms_and_quoting-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Scope_and_closure" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Scope_and_closure"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.8</span> <span>Scope and closure</span> </div> </a> <ul id="toc-Scope_and_closure-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-List_structure_of_program_code;_exploitation_by_macros_and_compilers" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#List_structure_of_program_code;_exploitation_by_macros_and_compilers"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.9</span> <span>List structure of program code; exploitation by macros and compilers</span> </div> </a> <ul id="toc-List_structure_of_program_code;_exploitation_by_macros_and_compilers-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Evaluation_and_the_read–eval–print_loop" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Evaluation_and_the_read–eval–print_loop"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.10</span> <span>Evaluation and the read–eval–print loop</span> </div> </a> <ul id="toc-Evaluation_and_the_read–eval–print_loop-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Control_structures" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Control_structures"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.11</span> <span>Control structures</span> </div> </a> <ul id="toc-Control_structures-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Examples" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Examples"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Examples</span> </div> </a> <ul id="toc-Examples-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Object_systems" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Object_systems"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Object systems</span> </div> </a> <ul id="toc-Object_systems-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Operating_systems" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Operating_systems"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Operating systems</span> </div> </a> <ul id="toc-Operating_systems-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Further_reading" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Further_reading"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>Further reading</span> </div> </a> <ul id="toc-Further_reading-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Lisp (programming language)</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 69 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-69" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">69 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%84%D9%8A%D8%B3%D8%A8" title="ليسب – Arabic" lang="ar" hreflang="ar" data-title="ليسب" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-an mw-list-item"><a href="https://an.wikipedia.org/wiki/Lisp" title="Lisp – Aragonese" lang="an" hreflang="an" data-title="Lisp" data-language-autonym="Aragonés" data-language-local-name="Aragonese" class="interlanguage-link-target"><span>Aragonés</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/Lisp" title="Lisp – Asturian" lang="ast" hreflang="ast" data-title="Lisp" data-language-autonym="Asturianu" data-language-local-name="Asturian" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Lisp" title="Lisp – Azerbaijani" lang="az" hreflang="az" data-title="Lisp" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%B2%E0%A6%BF%E0%A6%B8%E0%A7%8D%E0%A6%AA_(%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82_%E0%A6%AD%E0%A6%BE%E0%A6%B7%E0%A6%BE)" title="লিস্প (প্রোগ্রামিং ভাষা) – Bangla" lang="bn" hreflang="bn" data-title="লিস্প (প্রোগ্রামিং ভাষা)" data-language-autonym="বাংলা" data-language-local-name="Bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/%D0%9B%D1%96%D1%81%D0%BF" title="Лісп – Belarusian" lang="be" hreflang="be" data-title="Лісп" data-language-autonym="Беларуская" data-language-local-name="Belarusian" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/Lisp_(%D0%B5%D0%B7%D0%B8%D0%BA_%D0%B7%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5)" title="Lisp (език за програмиране) – Bulgarian" lang="bg" hreflang="bg" data-title="Lisp (език за програмиране)" data-language-autonym="Български" data-language-local-name="Bulgarian" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-bs mw-list-item"><a href="https://bs.wikipedia.org/wiki/Lisp_(programski_jezik)" title="Lisp (programski jezik) – Bosnian" lang="bs" hreflang="bs" data-title="Lisp (programski jezik)" data-language-autonym="Bosanski" data-language-local-name="Bosnian" class="interlanguage-link-target"><span>Bosanski</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Lisp" title="Lisp – Catalan" lang="ca" hreflang="ca" data-title="Lisp" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Lisp" title="Lisp – Czech" lang="cs" hreflang="cs" data-title="Lisp" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-cy mw-list-item"><a href="https://cy.wikipedia.org/wiki/Lisp" title="Lisp – Welsh" lang="cy" hreflang="cy" data-title="Lisp" data-language-autonym="Cymraeg" data-language-local-name="Welsh" class="interlanguage-link-target"><span>Cymraeg</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Lisp" title="Lisp – Danish" lang="da" hreflang="da" data-title="Lisp" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Lisp" title="Lisp – German" lang="de" hreflang="de" data-title="Lisp" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Lisp" title="Lisp – Estonian" lang="et" hreflang="et" data-title="Lisp" data-language-autonym="Eesti" data-language-local-name="Estonian" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/Lisp" title="Lisp – Greek" lang="el" hreflang="el" data-title="Lisp" data-language-autonym="Ελληνικά" data-language-local-name="Greek" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Lisp" title="Lisp – Spanish" lang="es" hreflang="es" data-title="Lisp" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/Lisp_(programlingvo)" title="Lisp (programlingvo) – Esperanto" lang="eo" hreflang="eo" data-title="Lisp (programlingvo)" data-language-autonym="Esperanto" data-language-local-name="Esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Lisp" title="Lisp – Basque" lang="eu" hreflang="eu" data-title="Lisp" data-language-autonym="Euskara" data-language-local-name="Basque" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%84%DB%8C%D8%B3%D9%BE" title="لیسپ – Persian" lang="fa" hreflang="fa" data-title="لیسپ" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Lisp" title="Lisp – French" lang="fr" hreflang="fr" data-title="Lisp" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ga mw-list-item"><a href="https://ga.wikipedia.org/wiki/LISP" title="LISP – Irish" lang="ga" hreflang="ga" data-title="LISP" data-language-autonym="Gaeilge" data-language-local-name="Irish" class="interlanguage-link-target"><span>Gaeilge</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Lisp" title="Lisp – Galician" lang="gl" hreflang="gl" data-title="Lisp" data-language-autonym="Galego" data-language-local-name="Galician" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%A6%AC%EC%8A%A4%ED%94%84" title="리스프 – Korean" lang="ko" hreflang="ko" data-title="리스프" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D4%BC%D5%AB%D5%BD%D5%BA" title="Լիսպ – Armenian" lang="hy" hreflang="hy" data-title="Լիսպ" data-language-autonym="Հայերեն" data-language-local-name="Armenian" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%B2%E0%A4%BF%E0%A4%B8%E0%A5%8D%E0%A4%AA" title="लिस्प – Hindi" lang="hi" hreflang="hi" data-title="लिस्प" data-language-autonym="हिन्दी" data-language-local-name="Hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Lisp" title="Lisp – Croatian" lang="hr" hreflang="hr" data-title="Lisp" data-language-autonym="Hrvatski" data-language-local-name="Croatian" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-io mw-list-item"><a href="https://io.wikipedia.org/wiki/Lisp_(programifo-linguo)" title="Lisp (programifo-linguo) – Ido" lang="io" hreflang="io" data-title="Lisp (programifo-linguo)" data-language-autonym="Ido" data-language-local-name="Ido" class="interlanguage-link-target"><span>Ido</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Lisp_(bahasa_pemrograman)" title="Lisp (bahasa pemrograman) – Indonesian" lang="id" hreflang="id" data-title="Lisp (bahasa pemrograman)" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/Lisp" title="Lisp – Icelandic" lang="is" hreflang="is" data-title="Lisp" data-language-autonym="Íslenska" data-language-local-name="Icelandic" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Lisp" title="Lisp – Italian" lang="it" hreflang="it" data-title="Lisp" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/Lisp" title="Lisp – Hebrew" lang="he" hreflang="he" data-title="Lisp" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-ky mw-list-item"><a href="https://ky.wikipedia.org/wiki/Lisp_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D0%BB%D0%BE%D0%BE_%D1%82%D0%B8%D0%BB%D0%B8)" title="Lisp (программалоо тили) – Kyrgyz" lang="ky" hreflang="ky" data-title="Lisp (программалоо тили)" data-language-autonym="Кыргызча" data-language-local-name="Kyrgyz" class="interlanguage-link-target"><span>Кыргызча</span></a></li><li class="interlanguage-link interwiki-la mw-list-item"><a href="https://la.wikipedia.org/wiki/Lisp" title="Lisp – Latin" lang="la" hreflang="la" data-title="Lisp" data-language-autonym="Latina" data-language-local-name="Latin" class="interlanguage-link-target"><span>Latina</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Lisp" title="Lisp – Latvian" lang="lv" hreflang="lv" data-title="Lisp" data-language-autonym="Latviešu" data-language-local-name="Latvian" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Lisp" title="Lisp – Lithuanian" lang="lt" hreflang="lt" data-title="Lisp" data-language-autonym="Lietuvių" data-language-local-name="Lithuanian" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Lisp_(programoz%C3%A1si_nyelv)" title="Lisp (programozási nyelv) – Hungarian" lang="hu" hreflang="hu" data-title="Lisp (programozási nyelv)" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%B2%E0%B4%BF%E0%B4%B8%E0%B5%8D%E0%B4%AA%E0%B5%8D" title="ലിസ്പ് – Malayalam" lang="ml" hreflang="ml" data-title="ലിസ്പ്" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-mr mw-list-item"><a href="https://mr.wikipedia.org/wiki/%E0%A4%B2%E0%A4%BF%E0%A4%B8%E0%A5%8D%E0%A4%AA" title="लिस्प – Marathi" lang="mr" hreflang="mr" data-title="लिस्प" data-language-autonym="मराठी" data-language-local-name="Marathi" class="interlanguage-link-target"><span>मराठी</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/LISP" title="LISP – Malay" lang="ms" hreflang="ms" data-title="LISP" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/Lisp" title="Lisp – Mongolian" lang="mn" hreflang="mn" data-title="Lisp" data-language-autonym="Монгол" data-language-local-name="Mongolian" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Lisp_(programmeertaal)" title="Lisp (programmeertaal) – Dutch" lang="nl" hreflang="nl" data-title="Lisp (programmeertaal)" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/LISP" title="LISP – Japanese" lang="ja" hreflang="ja" data-title="LISP" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Lisp" title="Lisp – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Lisp" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-nn mw-list-item"><a href="https://nn.wikipedia.org/wiki/Lisp" title="Lisp – Norwegian Nynorsk" lang="nn" hreflang="nn" data-title="Lisp" data-language-autonym="Norsk nynorsk" data-language-local-name="Norwegian Nynorsk" class="interlanguage-link-target"><span>Norsk nynorsk</span></a></li><li class="interlanguage-link interwiki-oc mw-list-item"><a href="https://oc.wikipedia.org/wiki/Lisp" title="Lisp – Occitan" lang="oc" hreflang="oc" data-title="Lisp" data-language-autonym="Occitan" data-language-local-name="Occitan" class="interlanguage-link-target"><span>Occitan</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/Lisp" title="Lisp – Uzbek" lang="uz" hreflang="uz" data-title="Lisp" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="Uzbek" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Lisp" title="Lisp – Polish" lang="pl" hreflang="pl" data-title="Lisp" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Lisp" title="Lisp – Portuguese" lang="pt" hreflang="pt" data-title="Lisp" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/LISP" title="LISP – Romanian" lang="ro" hreflang="ro" data-title="LISP" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%81%D0%BF" title="Лисп – Russian" lang="ru" hreflang="ru" data-title="Лисп" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Lisp" title="Lisp – Albanian" lang="sq" hreflang="sq" data-title="Lisp" data-language-autonym="Shqip" data-language-local-name="Albanian" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Lisp_(programming_language)" title="Lisp (programming language) – Simple English" lang="en-simple" hreflang="en-simple" data-title="Lisp (programming language)" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Lisp" title="Lisp – Slovak" lang="sk" hreflang="sk" data-title="Lisp" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Lisp_(programski_jezik)" title="Lisp (programski jezik) – Slovenian" lang="sl" hreflang="sl" data-title="Lisp (programski jezik)" data-language-autonym="Slovenščina" data-language-local-name="Slovenian" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-ckb mw-list-item"><a href="https://ckb.wikipedia.org/wiki/%D9%84%DB%8C%D8%B3%D9%BE" title="لیسپ – Central Kurdish" lang="ckb" hreflang="ckb" data-title="لیسپ" data-language-autonym="کوردی" data-language-local-name="Central Kurdish" class="interlanguage-link-target"><span>کوردی</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/Lisp_(programski_jezik)" title="Lisp (programski jezik) – Serbian" lang="sr" hreflang="sr" data-title="Lisp (programski jezik)" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Lisp" title="Lisp – Serbo-Croatian" lang="sh" hreflang="sh" data-title="Lisp" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="Serbo-Croatian" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Lisp" title="Lisp – Finnish" lang="fi" hreflang="fi" data-title="Lisp" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Lisp" title="Lisp – Swedish" lang="sv" hreflang="sv" data-title="Lisp" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/%E0%AE%B2%E0%AE%BF%E0%AE%B8%E0%AF%8D%E0%AE%AA%E0%AF%8D" title="லிஸ்ப் – Tamil" lang="ta" hreflang="ta" data-title="லிஸ்ப்" data-language-autonym="தமிழ்" data-language-local-name="Tamil" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B8%A5%E0%B8%B4%E0%B8%AA%E0%B8%9B%E0%B9%8C" title="ภาษาลิสป์ – Thai" lang="th" hreflang="th" data-title="ภาษาลิสป์" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Lisp" title="Lisp – Turkish" lang="tr" hreflang="tr" data-title="Lisp" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/Lisp" title="Lisp – Ukrainian" lang="uk" hreflang="uk" data-title="Lisp" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Lisp" title="Lisp – Vietnamese" lang="vi" hreflang="vi" data-title="Lisp" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/LISP" title="LISP – Wu" lang="wuu" hreflang="wuu" data-title="LISP" data-language-autonym="吴语" data-language-local-name="Wu" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/Lisp" title="Lisp – Cantonese" lang="yue" hreflang="yue" data-title="Lisp" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-bat-smg mw-list-item"><a href="https://bat-smg.wikipedia.org/wiki/Lisp" title="Lisp – Samogitian" lang="sgs" hreflang="sgs" data-title="Lisp" data-language-autonym="Žemaitėška" data-language-local-name="Samogitian" class="interlanguage-link-target"><span>Žemaitėška</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/LISP" title="LISP – Chinese" lang="zh" hreflang="zh" data-title="LISP" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zgh mw-list-item"><a href="https://zgh.wikipedia.org/wiki/%E2%B5%8D%E2%B5%89%E2%B5%99%E2%B5%92" title="ⵍⵉⵙⵒ – Standard Moroccan Tamazight" lang="zgh" hreflang="zgh" data-title="ⵍⵉⵙⵒ" data-language-autonym="ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ" data-language-local-name="Standard Moroccan Tamazight" class="interlanguage-link-target"><span>ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q132874#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Lisp_(programming_language)" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Lisp_(programming_language)" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Lisp_(programming_language)"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Lisp_(programming_language)&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Lisp_(programming_language)&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Lisp_(programming_language)"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Lisp_(programming_language)&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Lisp_(programming_language)&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Lisp_(programming_language)" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Lisp_(programming_language)" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Lisp_(programming_language)&oldid=1256161736" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Lisp_(programming_language)&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Lisp_%28programming_language%29&id=1256161736&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLisp_%28programming_language%29"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLisp_%28programming_language%29"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Lisp_%28programming_language%29&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Lisp_(programming_language)&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Lisp_(programming_language)" hreflang="en"><span>Wikimedia Commons</span></a></li><li class="wb-otherproject-link wb-otherproject-wikibooks mw-list-item"><a href="https://en.wikibooks.org/wiki/Lisp_Programming" hreflang="en"><span>Wikibooks</span></a></li><li class="wb-otherproject-link wb-otherproject-wikiquote mw-list-item"><a href="https://en.wikiquote.org/wiki/Lisp_(programming_language)" hreflang="en"><span>Wikiquote</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q132874" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Programming language family</div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">"LISP" redirects here. For the speech impediment, see <a href="/wiki/Lisp" title="Lisp">Lisp</a>. For other uses, see <a href="/wiki/Lisp_(disambiguation)" class="mw-disambig" title="Lisp (disambiguation)">Lisp (disambiguation)</a>.</div> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">Lisp</caption><tbody><tr><td colspan="2" class="infobox-image"><span typeof="mw:File"><a href="/wiki/File:Lisp_logo.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/4/48/Lisp_logo.svg/120px-Lisp_logo.svg.png" decoding="async" width="120" height="120" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/48/Lisp_logo.svg/180px-Lisp_logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/48/Lisp_logo.svg/240px-Lisp_logo.svg.png 2x" data-file-width="512" data-file-height="512" /></a></span></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Programming_paradigm" title="Programming paradigm">Paradigm</a></th><td class="infobox-data"><a href="/wiki/Multi-paradigm_programming_language" class="mw-redirect" title="Multi-paradigm programming language">Multi-paradigm</a>: <a href="/wiki/Functional_programming" title="Functional programming">functional</a>, <a href="/wiki/Procedural_programming" title="Procedural programming">procedural</a>, <a href="/wiki/Reflective_programming" title="Reflective programming">reflective</a>, <a href="/wiki/Metaprogramming" title="Metaprogramming">meta</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_design" title="Software design">Designed by</a></th><td class="infobox-data"><a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser"><a href="/wiki/Steve_Russell_(computer_scientist)" title="Steve Russell (computer scientist)">Steve Russell</a>, Timothy P. Hart, Mike Levin</td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">1960<span class="noprint">; 64 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">1960</span>)</span></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data"><a href="/wiki/Dynamic_typing" class="mw-redirect" title="Dynamic typing">Dynamic</a>, <a href="/wiki/Strong_and_weak_typing" title="Strong and weak typing">strong</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;"><a href="/wiki/Programming_language#Dialects,_flavors_and_implementations" title="Programming language">Dialects</a></th></tr><tr><td colspan="2" class="infobox-full-data"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><div class="hlist"> <ul><li><a href="/wiki/Arc_(programming_language)" title="Arc (programming language)">Arc</a></li> <li><a href="/wiki/AutoLISP" title="AutoLISP">AutoLISP</a></li> <li><a href="/wiki/Clojure" title="Clojure">Clojure</a></li> <li><a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a></li> <li><a href="/wiki/Emacs_Lisp" title="Emacs Lisp">Emacs Lisp</a></li> <li><a href="/wiki/EuLisp" title="EuLisp">EuLisp</a></li> <li><a href="/wiki/Franz_Lisp" title="Franz Lisp">Franz Lisp</a></li> <li><a href="/wiki/Game_Oriented_Assembly_Lisp" title="Game Oriented Assembly Lisp">GOAL</a></li> <li><a href="/wiki/Hy_(programming_language)" title="Hy (programming language)">Hy</a></li> <li><a href="/wiki/Interlisp" title="Interlisp">Interlisp</a></li> <li><a href="/wiki/ISLISP" title="ISLISP">ISLISP</a></li> <li><a href="/wiki/LeLisp" class="mw-redirect" title="LeLisp">LeLisp</a></li> <li><a href="/wiki/LFE_(programming_language)" title="LFE (programming language)">LFE</a></li> <li><a href="/wiki/Maclisp" title="Maclisp">Maclisp</a></li> <li><a href="/wiki/MDL_(programming_language)" title="MDL (programming language)">MDL</a></li> <li><a href="/wiki/NewLISP" title="NewLISP">newLISP</a></li> <li><a href="/wiki/NIL_(programming_language)" title="NIL (programming language)">NIL</a></li> <li><a href="/wiki/Picolisp" class="mw-redirect" title="Picolisp">Picolisp</a></li> <li><a href="/wiki/Portable_Standard_Lisp" title="Portable Standard Lisp">Portable Standard Lisp</a></li> <li><a href="/wiki/Racket_(programming_language)" title="Racket (programming language)">Racket</a></li> <li><a href="/wiki/RPL_(programming_language)" title="RPL (programming language)">RPL</a></li> <li><a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a></li> <li><a href="/wiki/Cadence_SKILL" title="Cadence SKILL">SKILL</a></li> <li><a href="/wiki/Spice_Lisp" title="Spice Lisp">Spice Lisp</a></li> <li><a href="/wiki/T_(programming_language)" title="T (programming language)">T</a></li> <li><a href="/wiki/Zetalisp" class="mw-redirect" title="Zetalisp">Zetalisp</a></li></ul> </div></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/Information_Processing_Language" title="Information Processing Language">Information Processing Language</a> (IPL)</td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced</th></tr><tr><td colspan="2" class="infobox-full-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><div class="hlist"> <ul><li><a href="/wiki/CLIPS" title="CLIPS">CLIPS</a></li> <li><a href="/wiki/CLU_(programming_language)" title="CLU (programming language)">CLU</a></li> <li><a href="/wiki/COWSEL" title="COWSEL">COWSEL</a></li> <li><a href="/wiki/Dylan_(programming_language)" title="Dylan (programming language)">Dylan</a></li> <li><a href="/wiki/Elixir_(programming_language)" title="Elixir (programming language)">Elixir</a></li> <li><a href="/wiki/Microsoft_Excel" title="Microsoft Excel">Excel</a></li> <li><a href="/wiki/Forth_(programming_language)" title="Forth (programming language)">Forth</a></li> <li><a href="/wiki/Haskell" title="Haskell">Haskell</a></li> <li><a href="/wiki/Io_(programming_language)" title="Io (programming language)">Io</a></li> <li><a href="/w/index.php?title=Ioke_(programming_language)&action=edit&redlink=1" class="new" title="Ioke (programming language) (page does not exist)">Ioke</a></li> <li><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a></li> <li><a href="/wiki/Julia_(programming_language)" title="Julia (programming language)">Julia</a><sup id="cite_ref-Julia_1-0" class="reference"><a href="#cite_note-Julia-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Logo_(programming_language)" title="Logo (programming language)">Logo</a></li> <li><a href="/wiki/Lua_(programming_language)" title="Lua (programming language)">Lua</a></li> <li><a href="/wiki/ML_(programming_language)" title="ML (programming language)">ML</a></li> <li><a href="/wiki/Nim_(programming_language)" title="Nim (programming language)">Nim</a></li> <li><a href="/wiki/Nu_(programming_language)" title="Nu (programming language)">Nu</a></li> <li><a href="/wiki/OPS5" title="OPS5">OPS5</a></li> <li><a href="/wiki/Perl" title="Perl">Perl</a></li> <li><a href="/wiki/POP-2" title="POP-2">POP-2</a>/<a href="/wiki/POP-11" title="POP-11">11</a></li> <li><a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a></li> <li><a href="/wiki/R_(programming_language)" title="R (programming language)">R</a></li> <li><a href="/wiki/Rebol" title="Rebol">Rebol</a></li> <li><a href="/wiki/Red_(programming_language)" title="Red (programming language)">Red</a></li> <li><a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></li> <li><a href="/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala</a></li> <li><a href="/wiki/Swift_(programming_language)" title="Swift (programming language)">Swift</a></li> <li><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a></li> <li><a href="/wiki/Tcl" title="Tcl">Tcl</a></li> <li><a href="/wiki/Wolfram_Language" title="Wolfram Language">Wolfram Language</a><sup id="cite_ref-Wolfram_2-0" class="reference"><a href="#cite_note-Wolfram-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></li></ul></div> </td></tr></tbody></table> <p><b>Lisp</b> (historically <b>LISP</b>, an abbreviation of "list processing") is a family of <a href="/wiki/Programming_language" title="Programming language">programming languages</a> with a long history and a distinctive, fully <a href="/wiki/Parenthesized" class="mw-redirect" title="Parenthesized">parenthesized</a> <a href="/wiki/Polish_notation#Computer_programming" title="Polish notation">prefix notation</a>.<sup id="cite_ref-6AN93_3-0" class="reference"><a href="#cite_note-6AN93-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Originally specified in the late 1950s, it is the second-oldest <a href="/wiki/High-level_programming_language" title="High-level programming language">high-level programming language</a> still in common use, after <a href="/wiki/Fortran" title="Fortran">Fortran</a>.<sup id="cite_ref-uOUnJ_4-0" class="reference"><a href="#cite_note-uOUnJ-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-AfFRW_5-0" class="reference"><a href="#cite_note-AfFRW-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Lisp has changed since its early days, and many <a href="/wiki/Programming_language_dialect" class="mw-redirect" title="Programming language dialect">dialects</a> have existed over its history. Today, the best-known general-purpose Lisp dialects are <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a>, <a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a>, <a href="/wiki/Racket_(programming_language)" title="Racket (programming language)">Racket</a>, and <a href="/wiki/Clojure" title="Clojure">Clojure</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> </p><p>Lisp was originally created as a practical <a href="/wiki/Mathematical_notation" title="Mathematical notation">mathematical notation</a> for <a href="/wiki/Computer_program" title="Computer program">computer programs</a>, influenced by (though not originally derived from)<sup id="cite_ref-Steele,_Guy_Lewis,_Jr.;_Sussman,_Gerald_Jay_9-0" class="reference"><a href="#cite_note-Steele,_Guy_Lewis,_Jr.;_Sussman,_Gerald_Jay-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> the notation of <a href="/wiki/Alonzo_Church" title="Alonzo Church">Alonzo Church</a>'s <a href="/wiki/Lambda_calculus" title="Lambda calculus">lambda calculus</a>. It quickly became a favored programming language for <a href="/wiki/Artificial_intelligence" title="Artificial intelligence">artificial intelligence</a> (AI) research.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> As one of the earliest programming languages, Lisp pioneered many ideas in <a href="/wiki/Computer_science" title="Computer science">computer science</a>, including <a href="/wiki/Tree_(data_structure)" class="mw-redirect" title="Tree (data structure)">tree data structures</a>, <a href="/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">automatic storage management</a>, <a href="/wiki/Dynamic_typing" class="mw-redirect" title="Dynamic typing">dynamic typing</a>, <a href="/wiki/Conditional_(computer_programming)" title="Conditional (computer programming)">conditionals</a>, <a href="/wiki/Higher-order_function" title="Higher-order function">higher-order functions</a>, <a href="/wiki/Recursion_(computer_science)" title="Recursion (computer science)">recursion</a>, the <a href="/wiki/Self-hosting_(compilers)" title="Self-hosting (compilers)">self-hosting compiler</a>,<sup id="cite_ref-Graham_11-0" class="reference"><a href="#cite_note-Graham-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> and the <a href="/wiki/Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">read–eval–print loop</a>.<sup id="cite_ref-hC1qm_12-0" class="reference"><a href="#cite_note-hC1qm-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> </p><p>The name <i>LISP</i> derives from "LISt Processor".<sup id="cite_ref-ArtOfLisp_13-0" class="reference"><a href="#cite_note-ArtOfLisp-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Linked_list" title="Linked list">Linked lists</a> are one of Lisp's major <a href="/wiki/Data_structure" title="Data structure">data structures</a>, and Lisp <a href="/wiki/Source_code" title="Source code">source code</a> is made of lists. Thus, Lisp programs can manipulate source code as a data structure, giving rise to the <a href="/wiki/Macro_(computer_science)" title="Macro (computer science)">macro</a> systems that allow programmers to create new syntax or new <a href="/wiki/Domain-specific_language" title="Domain-specific language">domain-specific languages</a> embedded in Lisp. </p><p>The interchangeability of code and data gives Lisp its instantly recognizable syntax. All program code is written as <i><a href="/wiki/S-expression" title="S-expression">s-expressions</a></i>, or parenthesized lists. A function call or syntactic form is written as a list with the function or operator's name first, and the arguments following; for instance, a function <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">f</span></code> that takes three arguments would be called as <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">f</span><span class="w"> </span><span class="nv">arg1</span><span class="w"> </span><span class="nv">arg2</span><span class="w"> </span><span class="nv">arg3</span><span class="p">)</span></code>. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=1" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1237032888/mw-parser-output/.tmulti">.mw-parser-output .tmulti .multiimageinner{display:flex;flex-direction:column}.mw-parser-output .tmulti .trow{display:flex;flex-direction:row;clear:left;flex-wrap:wrap;width:100%;box-sizing:border-box}.mw-parser-output .tmulti .tsingle{margin:1px;float:left}.mw-parser-output .tmulti .theader{clear:both;font-weight:bold;text-align:center;align-self:center;background-color:transparent;width:100%}.mw-parser-output .tmulti .thumbcaption{background-color:transparent}.mw-parser-output .tmulti .text-align-left{text-align:left}.mw-parser-output .tmulti .text-align-right{text-align:right}.mw-parser-output .tmulti .text-align-center{text-align:center}@media all and (max-width:720px){.mw-parser-output .tmulti .thumbinner{width:100%!important;box-sizing:border-box;max-width:none!important;align-items:center}.mw-parser-output .tmulti .trow{justify-content:center}.mw-parser-output .tmulti .tsingle{float:none!important;max-width:100%!important;box-sizing:border-box;text-align:center}.mw-parser-output .tmulti .tsingle .thumbcaption{text-align:left}.mw-parser-output .tmulti .trow>.thumbcaption{text-align:center}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .tmulti .multiimageinner img{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .tmulti .multiimageinner img{background-color:white}}</style><div class="thumb tmulti tright"><div class="thumbinner multiimageinner" style="width:204px;max-width:204px"><div class="trow"><div class="tsingle" style="width:202px;max-width:202px"><div class="thumbimage"><span typeof="mw:File"><a href="/wiki/File:John_McCarthy_Stanford.jpg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/49/John_McCarthy_Stanford.jpg/200px-John_McCarthy_Stanford.jpg" decoding="async" width="200" height="232" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/49/John_McCarthy_Stanford.jpg/300px-John_McCarthy_Stanford.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/49/John_McCarthy_Stanford.jpg/400px-John_McCarthy_Stanford.jpg 2x" data-file-width="2013" data-file-height="2332" /></a></span></div></div></div><div class="trow"><div class="tsingle" style="width:202px;max-width:202px"><div class="thumbimage"><span typeof="mw:File"><a href="/wiki/File:Steve_Russell.jpg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/7b/Steve_Russell.jpg/200px-Steve_Russell.jpg" decoding="async" width="200" height="331" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/7b/Steve_Russell.jpg/300px-Steve_Russell.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/7b/Steve_Russell.jpg/400px-Steve_Russell.jpg 2x" data-file-width="711" data-file-height="1178" /></a></span></div></div></div><div class="trow" style="display:flex"><div class="thumbcaption"><a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a> (top) and <a href="/wiki/Steve_Russell_(computer_scientist)" title="Steve Russell (computer scientist)">Steve Russell</a></div></div></div></div> <p><a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a> began developing Lisp in 1958 while he was at the <a href="/wiki/Massachusetts_Institute_of_Technology" title="Massachusetts Institute of Technology">Massachusetts Institute of Technology</a> (MIT). McCarthy published its design in a paper in <i><a href="/wiki/Communications_of_the_ACM" title="Communications of the ACM">Communications of the ACM</a></i> in April 1960, entitled "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I".<sup id="cite_ref-McCarthy_14-0" class="reference"><a href="#cite_note-McCarthy-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> He showed that with a few simple operators and a notation for anonymous functions borrowed from Church, one can build a <a href="/wiki/Turing_completeness" title="Turing completeness">Turing-complete</a> language for algorithms. </p><p><a href="/wiki/Information_Processing_Language" title="Information Processing Language">Information Processing Language</a> was the first <a href="/wiki/Artificial_intelligence" title="Artificial intelligence">AI</a> language, from 1955 or 1956, and already included many of the concepts, such as list-processing and recursion, which came to be used in Lisp. </p><p>McCarthy's original notation used bracketed "<a href="/wiki/M-expression" title="M-expression">M-expressions</a>" that would be translated into <a href="/wiki/S-expression" title="S-expression">S-expressions</a>. As an example, the M-expression <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">car[cons[A,B]]</span></code> is equivalent to the S-expression <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nb">car</span><span class="w"> </span><span class="p">(</span><span class="nb">cons</span><span class="w"> </span><span class="nv">A</span><span class="w"> </span><span class="nv">B</span><span class="p">))</span></code>. Once Lisp was implemented, programmers rapidly chose to use S-expressions, and M-expressions were abandoned. M-expressions surfaced again with short-lived attempts of <a href="/wiki/MLisp" title="MLisp">MLisp</a><sup id="cite_ref-Smith_15-0" class="reference"><a href="#cite_note-Smith-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> by Horace Enea and <a href="/wiki/CGOL" title="CGOL">CGOL</a> by <a href="/wiki/Vaughan_Pratt" title="Vaughan Pratt">Vaughan Pratt</a>. </p><p>Lisp was first implemented by <a href="/wiki/Steve_Russell_(computer_scientist)" title="Steve Russell (computer scientist)">Steve Russell</a> on an <a href="/wiki/IBM_704" title="IBM 704">IBM 704</a> computer using <a href="/wiki/Punched_card" title="Punched card">punched cards</a>.<sup id="cite_ref-4VwQq_16-0" class="reference"><a href="#cite_note-4VwQq-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> Russell had read McCarthy's paper and realized (to McCarthy's surprise) that the Lisp <i><a href="/wiki/Eval" title="Eval">eval</a></i> function could be implemented in <a href="/wiki/Machine_code" title="Machine code">machine code</a>. </p><p>According to McCarthy<sup id="cite_ref-k4CmX_17-0" class="reference"><a href="#cite_note-k4CmX-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> </p> <style data-mw-deduplicate="TemplateStyles:r1244412712">.mw-parser-output .templatequote{overflow:hidden;margin:1em 0;padding:0 32px}.mw-parser-output .templatequotecite{line-height:1.5em;text-align:left;margin-top:0}@media(min-width:500px){.mw-parser-output .templatequotecite{padding-left:1.6em}}</style><blockquote class="templatequote"><p>Steve Russell said, look, why don't I program this <i>eval</i> ... and I said to him, ho, ho, you're confusing theory with practice, this <i>eval</i> is intended for reading, not for computing. But he went ahead and did it. That is, he <a href="/wiki/Compiler" title="Compiler">compiled</a> the <i>eval</i> in my paper into <a href="/wiki/IBM_704" title="IBM 704">IBM 704</a> machine code, fixing <a href="/wiki/Software_bug" title="Software bug">bugs</a>, and then advertised this as a Lisp interpreter, which it certainly was. So at that point Lisp had essentially the form that it has today ...</p></blockquote> <p>The result was a working Lisp <a href="/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreter</a> which could be used to run Lisp programs, or more properly, "evaluate Lisp expressions". </p><p>Two <a href="/wiki/Assembly_language_macros" class="mw-redirect" title="Assembly language macros">assembly language macros</a> for the <a href="/wiki/IBM_704" title="IBM 704">IBM 704</a> became the primitive operations for decomposing lists: <a href="/wiki/Car_and_cdr" class="mw-redirect" title="Car and cdr">car</a> (<i>Contents of the Address part of Register</i> number) and <a href="/wiki/Car_and_cdr" class="mw-redirect" title="Car and cdr">cdr</a> (<i>Contents of the Decrement part of Register</i> number),<sup id="cite_ref-PREHISTORY_18-0" class="reference"><a href="#cite_note-PREHISTORY-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> where "register" refers to <a href="/wiki/Processor_register" title="Processor register">registers</a> of the computer's <a href="/wiki/Central_processing_unit" title="Central processing unit">central processing unit</a> (CPU). Lisp dialects still use <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">car</span></code> and <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">cdr</span></code> (<span class="rt-commentedText nowrap"><span class="IPA nopopups noexcerpt" lang="en-fonipa"><a href="/wiki/Help:IPA/English" title="Help:IPA/English">/<span style="border-bottom:1px dotted"><span title="'k' in 'kind'">k</span><span title="/ɑːr/: 'ar' in 'far'">ɑːr</span></span>/</a></span></span> and <span class="rt-commentedText nowrap"><span class="IPA nopopups noexcerpt" lang="en-fonipa"><a href="/wiki/Help:IPA/English" title="Help:IPA/English">/<span style="border-bottom:1px dotted"><span title="/ˈ/: primary stress follows">ˈ</span><span title="'k' in 'kind'">k</span><span title="/ʊ/: 'u' in 'push'">ʊ</span><span title="'d' in 'dye'">d</span><span title="/ər/: 'er' in 'letter'">ər</span></span>/</a></span></span>) for the operations that return the first item in a list and the rest of the list, respectively. </p><p>The first complete Lisp compiler, written in Lisp, was implemented in 1962 by Tim Hart and Mike Levin at MIT, and could be compiled by simply having an existing LISP interpreter interpret the compiler code, producing <a href="/wiki/Machine_code" title="Machine code">machine code</a> output able to be executed at a 40-fold improvement in speed over that of the interpreter.<sup id="cite_ref-Levin_19-0" class="reference"><a href="#cite_note-Levin-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> This compiler introduced the Lisp model of <a href="/wiki/Incremental_compiler" title="Incremental compiler">incremental compilation</a>, in which compiled and interpreted functions can intermix freely. The language used in Hart and Levin's memo is much closer to modern Lisp style than McCarthy's earlier code. </p><p><a href="/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">Garbage collection</a> routines were developed by MIT graduate student <a href="/w/index.php?title=Daniel_Edwards_(programmer)&action=edit&redlink=1" class="new" title="Daniel Edwards (programmer) (page does not exist)">Daniel Edwards</a>, prior to 1962.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> </p><p>During the 1980s and 1990s, a great effort was made to unify the work on new Lisp dialects (mostly successors to <a href="/wiki/Maclisp" title="Maclisp">Maclisp</a> such as <a href="/wiki/ZetaLisp" class="mw-redirect" title="ZetaLisp">ZetaLisp</a> and NIL (New Implementation of Lisp) into a single language. The new language, <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a>, was somewhat compatible with the dialects it replaced (the book <i><a href="/wiki/Common_Lisp_the_Language" title="Common Lisp the Language">Common Lisp the Language</a></i> notes the compatibility of various constructs). In 1994, <a href="/wiki/ANSI" class="mw-redirect" title="ANSI">ANSI</a> published the Common Lisp standard, "ANSI X3.226-1994 Information Technology Programming Language Common Lisp". </p> <div class="mw-heading mw-heading3"><h3 id="Timeline">Timeline</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=2" title="Edit section: Timeline"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="toccolours" style="font-size:88%"> <caption style="font-size:112%"><style data-mw-deduplicate="TemplateStyles:r1045256916">.mw-parser-output .navbar-header{text-align:center;position:relative;white-space:nowrap}.mw-parser-output .navbar-header .navbar{position:absolute;right:0;top:0;margin:0 5px}</style><div class="navbar-header">Timeline of Lisp dialects<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Lisp" title="Template:Lisp"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Lisp" title="Template talk:Lisp"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Lisp" title="Special:EditPage/Template:Lisp"><abbr title="Edit this template">e</abbr></a></li></ul></div></div> </caption> <tbody><tr style="background:lavender;"> <th width="7%">1958 </th> <th width="7%">1960 </th> <th width="7%">1965 </th> <th width="7%">1970 </th> <th width="7%">1975 </th> <th width="7%">1980 </th> <th width="7%">1985 </th> <th width="7%">1990 </th> <th width="7%">1995 </th> <th width="7%">2000 </th> <th width="7%">2005 </th> <th width="7%">2010 </th> <th width="8%">2015 </th> <th width="8%">2020 </th></tr> <tr> <th align="left" colspan="3" style="background:lightgray"> LISP 1, 1.5, <a href="/wiki/LISP_2" title="LISP 2">LISP 2<sup>(abandoned)</sup></a> </th> <td colspan="10"> </td></tr> <tr> <td colspan="2"> </td> <th align="left" colspan="5" style="background:lightgray"> <a href="/wiki/Maclisp" title="Maclisp">Maclisp</a> </th> <td colspan="6"> </td></tr> <tr> <td colspan="3"> </td> <th align="left" colspan="5" style="background:lightgray"> <a href="/wiki/Interlisp" title="Interlisp">Interlisp</a> </th> <td colspan="5"> </td></tr> <tr> <td colspan="3"> </td> <th align="left" colspan="2" style="background:lightgray"> <a href="/wiki/MDL_(programming_language)" title="MDL (programming language)">MDL</a> </th> <td colspan="5"> </td></tr> <tr> <td colspan="4"> </td> <th align="left" colspan="5" style="background:lightgray"> <a href="/wiki/Lisp_Machine_Lisp" title="Lisp Machine Lisp">Lisp Machine Lisp</a> </th> <td colspan="4"> </td></tr> <tr> <td colspan="4"> </td> <th align="left" colspan="4" style="background:lightgray"> <a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a> </th> <th align="left" colspan="2" style="background:lightgray"> R5RS </th> <th align="left" colspan="1" style="background:lightgray"> R6RS </th> <th align="left" colspan="3" style="background:lightgray"> R7RS small </th></tr> <tr> <td colspan="4"> </td> <th align="left" colspan="2" style="background:lightgray"> <a href="/wiki/NIL_(programming_language)" title="NIL (programming language)">NIL</a> </th></tr> <tr> <td colspan="5"> </td> <th align="left" colspan="2" style="background:lightgray"> <a href="/wiki/Z-machine#ZIL_(Zork_Implementation_Language)" title="Z-machine">ZIL (Zork Implementation Language)</a> </th></tr> <tr> <td colspan="5"> </td> <th align="left" colspan="2" style="background:lightgray"> <a href="/wiki/Franz_Lisp" title="Franz Lisp">Franz Lisp</a> </th></tr> <tr> <td colspan="5"> </td> <th align="left" colspan="2" style="background:lightgray"> <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a> </th> <th align="left" colspan="7" style="background:lightgray"> ANSI standard </th></tr> <tr> <td colspan="5"> </td> <th align="left" colspan="9" style="background:lightgray"> <a href="/wiki/Le_Lisp" title="Le Lisp">Le Lisp</a> </th></tr> <tr> <td colspan="5"> </td> <th align="left" colspan="11" style="background:lightgray"> <a href="/wiki/MIT_Scheme" class="mw-redirect" title="MIT Scheme">MIT Scheme</a> </th></tr> <tr> <td colspan="5"> </td> <th align="left" colspan="4" style="background:lightgray"> <a href="/wiki/XLISP" title="XLISP">XLISP</a> </th></tr> <tr> <td colspan="6"> </td> <th align="left" colspan="3" style="background:lightgray"> <a href="/wiki/T_(programming_language)" title="T (programming language)">T</a> </th> <td colspan="4"> </td></tr> <tr> <td colspan="6"> </td> <th align="left" colspan="8" style="background:lightgray"> <a href="/wiki/Chez_Scheme" title="Chez Scheme">Chez Scheme</a> </th></tr> <tr> <td colspan="6"> </td> <th align="left" colspan="8" style="background:lightgray"> <a href="/wiki/Emacs_Lisp" title="Emacs Lisp">Emacs Lisp</a> </th></tr> <tr> <td colspan="6"> </td> <th align="left" colspan="8" style="background:lightgray"> <a href="/wiki/AutoLISP" title="AutoLISP">AutoLISP</a> </th></tr> <tr> <td colspan="6"> </td> <th align="left" colspan="8" style="background:lightgray"> <a href="/wiki/PicoLisp" title="PicoLisp">PicoLisp</a> </th></tr> <tr> <td colspan="6"> </td> <th align="left" colspan="8" style="background:lightgray"> <a href="/wiki/Gambit_(Scheme_implementation)" title="Gambit (Scheme implementation)">Gambit</a> </th></tr> <tr> <td colspan="7"> </td> <th align="left" colspan="6" style="background:lightgray"> <a href="/wiki/EuLisp" title="EuLisp">EuLisp</a> </th></tr> <tr> <td colspan="7"> </td> <th align="left" colspan="8" style="background:lightgray"> <a href="/wiki/ISLISP" title="ISLISP">ISLISP</a> </th></tr> <tr> <td colspan="7"> </td> <th align="left" colspan="8" style="background:lightgray"> <a href="/wiki/OpenLisp" title="OpenLisp">OpenLisp</a> </th></tr> <tr> <td colspan="7"> </td> <th align="left" colspan="4" style="background:lightgray"> <a href="/wiki/PLT_Scheme" class="mw-redirect" title="PLT Scheme">PLT Scheme</a> </th> <th align="left" colspan="3" style="background:lightgray"> <a href="/wiki/Racket_(programming_language)" title="Racket (programming language)">Racket</a> </th></tr> <tr> <td colspan="7"> </td> <th align="left" colspan="7" style="background:lightgray"> <a href="/wiki/NewLISP" title="NewLISP">newLISP</a> </th></tr> <tr> <td colspan="7"> </td> <th align="left" colspan="7" style="background:lightgray"> <a href="/wiki/GNU_Guile" title="GNU Guile">GNU Guile</a> </th></tr> <tr> <td colspan="9"> </td> <th align="left" colspan="5" style="background:lightgray"> <a href="/wiki/AutoLISP" title="AutoLISP">Visual LISP</a> </th></tr> <tr> <td colspan="10"> </td> <th align="left" colspan="4" style="background:lightgray"> <a href="/wiki/Clojure" title="Clojure">Clojure</a> </th></tr> <tr> <td colspan="10"> </td> <th align="left" colspan="4" style="background:lightgray"> <a href="/wiki/Arc_(programming_language)" title="Arc (programming language)">Arc</a> </th></tr> <tr> <td colspan="10"> </td> <th align="left" colspan="4" style="background:lightgray"> <a href="/wiki/LFE_(programming_language)" title="LFE (programming language)">LFE</a> </th></tr> <tr> <td colspan="11"> </td> <th align="left" colspan="3" style="background:lightgray"> <a href="/wiki/Hy_(programming_language)" title="Hy (programming language)">Hy</a> </th></tr> <tr> <td colspan="13"> </td> <th align="left" colspan="3" style="background:lightgray"> <a href="/w/index.php?title=Chialisp&action=edit&redlink=1" class="new" title="Chialisp (page does not exist)">Chialisp</a> </th></tr> </tbody></table> <div class="mw-heading mw-heading3"><h3 id="Connection_to_artificial_intelligence">Connection to artificial intelligence</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=3" title="Edit section: Connection to artificial intelligence"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Since inception, Lisp was closely connected with the <a href="/wiki/Artificial_intelligence" title="Artificial intelligence">artificial intelligence</a> research community, especially on <a href="/wiki/PDP-10" title="PDP-10">PDP-10</a><sup id="cite_ref-PYuEL_21-0" class="reference"><a href="#cite_note-PYuEL-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> systems. Lisp was used as the implementation of the language <a href="/wiki/Planner_(programming_language)" title="Planner (programming language)">Micro Planner</a>, which was used in the famous AI system <a href="/wiki/SHRDLU" title="SHRDLU">SHRDLU</a>. In the 1970s, as AI research spawned commercial offshoots, the performance of existing Lisp systems became a growing issue, as programmers needed to be familiar with the performance ramifications of the various techniques and choices involved in the implementation of Lisp.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Genealogy_and_variants">Genealogy and variants</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=4" title="Edit section: Genealogy and variants"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Over its sixty-year history, Lisp has spawned many variations on the core theme of an S-expression language. Moreover, each given dialect may have several implementations—for instance, there are more than a dozen implementations of <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a>. </p><p>Differences between dialects may be quite visible—for instance, Common Lisp uses the keyword <code>defun</code> to name a function, but Scheme uses <code>define</code>.<sup id="cite_ref-jbyrI_23-0" class="reference"><a href="#cite_note-jbyrI-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> Within a dialect that is standardized, however, conforming implementations support the same core language, but with different extensions and libraries. </p> <div class="mw-heading mw-heading4"><h4 id="Historically_significant_dialects">Historically significant dialects</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=5" title="Edit section: Historically significant dialects"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <figure class="mw-default-size mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:LISP_machine.jpg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/1/16/LISP_machine.jpg/220px-LISP_machine.jpg" decoding="async" width="220" height="291" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/16/LISP_machine.jpg/330px-LISP_machine.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/16/LISP_machine.jpg/440px-LISP_machine.jpg 2x" data-file-width="1536" data-file-height="2032" /></a><figcaption>A <a href="/wiki/Lisp_machine" title="Lisp machine">Lisp machine</a> in the <a href="/wiki/MIT_Museum" title="MIT Museum">MIT Museum</a></figcaption></figure> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:4.3_BSD_UWisc_VAX_Emulation_Lisp_Manual.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f7/4.3_BSD_UWisc_VAX_Emulation_Lisp_Manual.png/220px-4.3_BSD_UWisc_VAX_Emulation_Lisp_Manual.png" decoding="async" width="220" height="140" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f7/4.3_BSD_UWisc_VAX_Emulation_Lisp_Manual.png/330px-4.3_BSD_UWisc_VAX_Emulation_Lisp_Manual.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f7/4.3_BSD_UWisc_VAX_Emulation_Lisp_Manual.png/440px-4.3_BSD_UWisc_VAX_Emulation_Lisp_Manual.png 2x" data-file-width="652" data-file-height="416" /></a><figcaption><a href="/wiki/4.3BSD" class="mw-redirect" title="4.3BSD">4.3BSD</a> from the <a href="/wiki/University_of_Wisconsin" class="mw-redirect" title="University of Wisconsin">University of Wisconsin</a>, displaying the <a href="/wiki/Man_page" title="Man page">man page</a> for <a href="/wiki/Franz_Lisp" title="Franz Lisp">Franz Lisp</a></figcaption></figure> <ul><li>LISP 1<sup id="cite_ref-Fs6VP_24-0" class="reference"><a href="#cite_note-Fs6VP-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> – First implementation.</li> <li>LISP 1.5<sup id="cite_ref-1.5_manual_25-0" class="reference"><a href="#cite_note-1.5_manual-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> – First widely distributed version, developed by McCarthy and others at MIT. So named because it contained several improvements on the original "LISP 1" interpreter, but was not a major restructuring as the planned <a href="/wiki/LISP_2" title="LISP 2">LISP 2</a> would be.</li> <li>Stanford LISP 1.6<sup id="cite_ref-7q5x9_26-0" class="reference"><a href="#cite_note-7q5x9-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> – A successor to LISP 1.5 developed at the <a href="/wiki/Stanford_AI_Lab" class="mw-redirect" title="Stanford AI Lab">Stanford AI Lab</a>, and widely distributed to <a href="/wiki/PDP-10" title="PDP-10">PDP-10</a> systems running the <a href="/wiki/TOPS-10" title="TOPS-10">TOPS-10</a> operating system. It was rendered obsolete by Maclisp and InterLisp.</li> <li><a href="/wiki/Maclisp" title="Maclisp">Maclisp</a><sup id="cite_ref-UNDMs_27-0" class="reference"><a href="#cite_note-UNDMs-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> – developed for MIT's <a href="/wiki/Project_MAC" class="mw-redirect" title="Project MAC">Project MAC</a>, MACLISP is a direct descendant of LISP 1.5. It ran on the PDP-10 and <a href="/wiki/Multics" title="Multics">Multics</a> systems. MACLISP would later come to be called Maclisp, and is often referred to as MacLisp. The "MAC" in MACLISP is unrelated to Apple's <a href="/wiki/Macintosh" class="mw-redirect" title="Macintosh">Macintosh</a> or <a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">McCarthy</a>.</li> <li><a href="/wiki/Interlisp" title="Interlisp">Interlisp</a><sup id="cite_ref-5CtB3_28-0" class="reference"><a href="#cite_note-5CtB3-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> – developed at <a href="/wiki/BBN_Technologies" class="mw-redirect" title="BBN Technologies">BBN Technologies</a> for PDP-10 systems running the <a href="/wiki/TENEX_(operating_system)" title="TENEX (operating system)">TENEX operating system</a>, later adopted as a "West coast" Lisp for the Xerox Lisp machines as <a href="/w/index.php?title=InterLisp-D&action=edit&redlink=1" class="new" title="InterLisp-D (page does not exist)">InterLisp-D</a>. A small version called "InterLISP 65" was published for the <a href="/wiki/MOS_Technology_6502" title="MOS Technology 6502">MOS Technology 6502</a>-based <a href="/wiki/Atari_8-bit_computers" title="Atari 8-bit computers">Atari 8-bit computers</a>. Maclisp and InterLisp were strong competitors.</li> <li><a href="/wiki/Franz_Lisp" title="Franz Lisp">Franz Lisp</a> – originally a <a href="/wiki/University_of_California,_Berkeley" title="University of California, Berkeley">University of California, Berkeley</a> project; later developed by Franz Inc. The name is a humorous deformation of the name "<a href="/wiki/Franz_Liszt" title="Franz Liszt">Franz Liszt</a>", and does not refer to <a href="/wiki/Allegro_Common_Lisp" title="Allegro Common Lisp">Allegro Common Lisp</a>, the dialect of Common Lisp sold by Franz Inc., in more recent years.</li> <li><a href="/wiki/XLISP" title="XLISP">XLISP</a>, which <a href="/wiki/AutoLISP" title="AutoLISP">AutoLISP</a> was based on.</li> <li><a href="/w/index.php?title=Standard_Lisp&action=edit&redlink=1" class="new" title="Standard Lisp (page does not exist)">Standard Lisp</a> and <a href="/wiki/Portable_Standard_Lisp" title="Portable Standard Lisp">Portable Standard Lisp</a> were widely used and ported, especially with the Computer Algebra System REDUCE.</li> <li><a href="/wiki/ZetaLisp" class="mw-redirect" title="ZetaLisp">ZetaLisp</a>, also termed Lisp Machine Lisp – used on the <a href="/wiki/Lisp_machine" title="Lisp machine">Lisp machines</a>, direct descendant of Maclisp. ZetaLisp had a big influence on Common Lisp.</li> <li><a href="/wiki/LeLisp" class="mw-redirect" title="LeLisp">LeLisp</a> is a French Lisp dialect. One of the first <a href="/wiki/Graphical_user_interface_builder" title="Graphical user interface builder">Interface Builders</a> (called SOS Interface<sup id="cite_ref-pq98z_29-0" class="reference"><a href="#cite_note-pq98z-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup>) was written in LeLisp.</li> <li><a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a> (1975).<sup id="cite_ref-dp6Mp_30-0" class="reference"><a href="#cite_note-dp6Mp-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a> (1984), as described by <i><a href="/wiki/Common_Lisp_the_Language" title="Common Lisp the Language">Common Lisp the Language</a></i> – a consolidation of several divergent attempts (ZetaLisp, <a href="/wiki/Spice_Lisp" title="Spice Lisp">Spice Lisp</a>, <a href="/wiki/NIL_(programming_language)" title="NIL (programming language)">NIL</a>, and <a href="/wiki/S-1_Lisp" title="S-1 Lisp">S-1 Lisp</a>) to create successor dialects<sup id="cite_ref-Rb5BT_31-0" class="reference"><a href="#cite_note-Rb5BT-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> to Maclisp, with substantive influences from the Scheme dialect as well. This version of Common Lisp was available for wide-ranging platforms and was accepted by many as a <a href="/wiki/De_facto_standard" title="De facto standard">de facto standard</a><sup id="cite_ref-Xvsoj_32-0" class="reference"><a href="#cite_note-Xvsoj-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> until the publication of ANSI Common Lisp (ANSI X3.226-1994). Among the most widespread sub-dialects of Common Lisp are <a href="/wiki/Steel_Bank_Common_Lisp" title="Steel Bank Common Lisp">Steel Bank Common Lisp</a> (SBCL), CMU Common Lisp (CMU-CL), Clozure OpenMCL (not to be confused with Clojure!), GNU CLisp, and later versions of Franz Lisp; all of them adhere to the later ANSI CL standard (see below).</li> <li><a href="/wiki/Dylan_(programming_language)" title="Dylan (programming language)">Dylan</a> was in its first version a mix of Scheme with the Common Lisp Object System.</li> <li><a href="/wiki/EuLisp" title="EuLisp">EuLisp</a> – attempt to develop a new efficient and cleaned-up Lisp.</li> <li><a href="/wiki/ISLISP" title="ISLISP">ISLISP</a> – attempt to develop a new efficient and cleaned-up Lisp. Standardized as ISO/IEC 13816:1997<sup id="cite_ref-E4h75_33-0" class="reference"><a href="#cite_note-E4h75-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> and later revised as ISO/IEC 13816:2007:<sup id="cite_ref-xECKU_34-0" class="reference"><a href="#cite_note-xECKU-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> <i>Information technology – Programming languages, their environments and system software interfaces – Programming language ISLISP</i>.</li> <li>IEEE <a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a> – IEEE standard, 1178–1990 (R1995).</li> <li>ANSI <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a> – an <a href="/wiki/American_National_Standards_Institute" title="American National Standards Institute">American National Standards Institute</a> (ANSI) <a href="/wiki/Standardization" title="Standardization">standard</a> for Common Lisp, created by subcommittee <a href="/wiki/X3J13" title="X3J13">X3J13</a>, chartered<sup id="cite_ref-CAXAD_35-0" class="reference"><a href="#cite_note-CAXAD-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> to begin with <i>Common Lisp: The Language</i> as a base document and to work through a public <a href="/wiki/Consensus_decision-making" title="Consensus decision-making">consensus</a> process to find solutions to shared issues of <a href="/wiki/Portability_(software)" class="mw-redirect" title="Portability (software)">portability</a> of programs and <a href="/wiki/Computer_compatibility" title="Computer compatibility">compatibility</a> of Common Lisp implementations. Although formally an ANSI standard, the implementation, sale, use, and influence of ANSI Common Lisp has been and continues to be seen worldwide.</li> <li><a href="/wiki/ACL2" title="ACL2">ACL2</a> or "A Computational Logic for Applicative Common Lisp", an applicative (side-effect free) variant of Common LISP. ACL2 is both a programming language which can model computer systems, and a tool to help proving properties of those models.</li> <li><a href="/wiki/Clojure" title="Clojure">Clojure</a>, a recent dialect of Lisp which compiles to the <a href="/wiki/Java_virtual_machine" title="Java virtual machine">Java virtual machine</a> and has a particular focus on <a href="/wiki/Concurrency_(computer_science)" title="Concurrency (computer science)">concurrency</a>.</li> <li><a href="/wiki/Game_Oriented_Assembly_Lisp" title="Game Oriented Assembly Lisp">Game Oriented Assembly Lisp</a> (or GOAL) is a video game programming language developed by <a href="/wiki/Andy_Gavin" title="Andy Gavin">Andy Gavin</a> at <a href="/wiki/Naughty_Dog" title="Naughty Dog">Naughty Dog</a>. It was written using Allegro Common Lisp and used in the development of the entire <a href="/wiki/Jak_and_Daxter" title="Jak and Daxter">Jak and Daxter series of games</a> developed by Naughty Dog.</li></ul> <div class="mw-heading mw-heading3"><h3 id="2000_to_present">2000 to present</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=6" title="Edit section: 2000 to present"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>After having declined somewhat in the 1990s, Lisp has experienced a resurgence of interest after 2000. Most new activity has been focused around implementations of <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a>, <a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a>, <a href="/wiki/Emacs_Lisp" title="Emacs Lisp">Emacs Lisp</a>, <a href="/wiki/Clojure" title="Clojure">Clojure</a>, and <a href="/wiki/Racket_(programming_language)" title="Racket (programming language)">Racket</a>, and includes development of new portable libraries and applications. </p><p>Many new Lisp programmers were inspired by writers such as <a href="/wiki/Paul_Graham_(computer_programmer)" class="mw-redirect" title="Paul Graham (computer programmer)">Paul Graham</a> and <a href="/wiki/Eric_S._Raymond" title="Eric S. Raymond">Eric S. Raymond</a> to pursue a language others considered antiquated. New Lisp programmers often describe the language as an eye-opening experience and claim to be substantially more productive than in other languages.<sup id="cite_ref-sKh98_36-0" class="reference"><a href="#cite_note-sKh98-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> This increase in awareness may be contrasted to the "<a href="/wiki/AI_winter" title="AI winter">AI winter</a>" and Lisp's brief gain in the mid-1990s.<sup id="cite_ref-nb7MB_37-0" class="reference"><a href="#cite_note-nb7MB-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> </p><p>As of 2010<sup class="plainlinks noexcerpt noprint asof-tag update" style="display:none;"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Lisp_(programming_language)&action=edit">[update]</a></sup>, there were eleven actively maintained Common Lisp implementations.<sup id="cite_ref-sWbGt_38-0" class="reference"><a href="#cite_note-sWbGt-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup> </p><p>The <a href="/wiki/Open-source-software_movement" title="Open-source-software movement">open source</a> community has created new supporting infrastructure: <a href="/wiki/CLiki" title="CLiki">CLiki</a> is a wiki that collects Common Lisp related information, the <a href="/w/index.php?title=Common_Lisp_directory&action=edit&redlink=1" class="new" title="Common Lisp directory (page does not exist)">Common Lisp directory</a> lists resources, #lisp is a popular IRC channel and allows the sharing and commenting of code snippets (with support by <a href="/w/index.php?title=Lisppaste&action=edit&redlink=1" class="new" title="Lisppaste (page does not exist)">lisppaste</a>, an <a href="/wiki/IRC_bot" title="IRC bot">IRC bot</a> written in Lisp), <a href="/w/index.php?title=Planet_Lisp&action=edit&redlink=1" class="new" title="Planet Lisp (page does not exist)">Planet Lisp</a><sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup> collects the contents of various Lisp-related blogs, on <a href="/w/index.php?title=LispForum&action=edit&redlink=1" class="new" title="LispForum (page does not exist)">LispForum</a><sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup> users discuss Lisp topics, <a href="/w/index.php?title=Lispjobs&action=edit&redlink=1" class="new" title="Lispjobs (page does not exist)">Lispjobs</a><sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> is a service for announcing job offers and there is a weekly news service, <i><a href="/w/index.php?title=Weekly_Lisp_News&action=edit&redlink=1" class="new" title="Weekly Lisp News (page does not exist)">Weekly Lisp News</a></i>. <i>Common-lisp.net</i> is a hosting site for open source Common Lisp projects. <a href="/wiki/Quicklisp" class="mw-redirect" title="Quicklisp">Quicklisp</a><sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup> is a library manager for Common Lisp. </p><p>Fifty years of Lisp (1958–2008) was celebrated at LISP50@OOPSLA.<sup id="cite_ref-Q9GcA_43-0" class="reference"><a href="#cite_note-Q9GcA-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup> There are regular local user meetings in Boston, Vancouver, and Hamburg. Other events include the European Common Lisp Meeting, the European Lisp Symposium and an International Lisp Conference. </p><p>The Scheme community actively maintains <a href="/wiki/Scheme_(programming_language)#Implementations" title="Scheme (programming language)">over twenty implementations</a>. Several significant new implementations (Chicken, Gambit, Gauche, Ikarus, Larceny, Ypsilon) have been developed in the 2000s (decade). The Revised<sup>5</sup> Report on the Algorithmic Language Scheme<sup id="cite_ref-92GaL_44-0" class="reference"><a href="#cite_note-92GaL-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup> standard of Scheme was widely accepted in the Scheme community. The <a href="/wiki/Scheme_Requests_for_Implementation" title="Scheme Requests for Implementation">Scheme Requests for Implementation</a> process has created a lot of quasi-standard libraries and extensions for Scheme. User communities of individual Scheme implementations continue to grow. A new language standardization process was started in 2003 and led to the R<sup>6</sup>RS Scheme standard in 2007. Academic use of Scheme for teaching computer science seems to have declined somewhat. Some universities are no longer using Scheme in their computer science introductory courses;<sup id="cite_ref-yVta1_45-0" class="reference"><a href="#cite_note-yVta1-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-XOiAA_46-0" class="reference"><a href="#cite_note-XOiAA-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup> MIT now uses <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a> instead of Scheme for its undergraduate <a href="/wiki/Computer_science" title="Computer science">computer science</a> program and MITx massive open online course.<sup id="cite_ref-MITEECS-Python_47-0" class="reference"><a href="#cite_note-MITEECS-Python-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-MITx-Phyton_48-0" class="reference"><a href="#cite_note-MITx-Phyton-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup> </p><p>There are several new dialects of Lisp: <a href="/wiki/Arc_(programming_language)" title="Arc (programming language)">Arc</a>, <a href="/wiki/Hy_(programming_language)" title="Hy (programming language)">Hy</a>, <a href="/wiki/Nu_(programming_language)" title="Nu (programming language)">Nu</a>, <a href="/w/index.php?title=Liskell&action=edit&redlink=1" class="new" title="Liskell (page does not exist)">Liskell</a>, and <a href="/wiki/LFE_(programming_language)" title="LFE (programming language)">LFE</a> (Lisp Flavored Erlang). The parser for <a href="/wiki/Julia_(programming_language)" title="Julia (programming language)">Julia</a> is implemented in Femtolisp, a dialect of <a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a> (Julia is inspired by Scheme, which in turn is a Lisp dialect). </p><p>In October 2019, <a href="/wiki/Paul_Graham_(programmer)" title="Paul Graham (programmer)">Paul Graham</a> released <a rel="nofollow" class="external text" href="http://paulgraham.com/bel.html">a specification for Bel</a>, "a new dialect of Lisp." </p> <div class="mw-heading mw-heading2"><h2 id="Major_dialects">Major dialects</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=7" title="Edit section: Major dialects"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a> and <a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a> represent two major streams of Lisp development. These languages embody significantly different design choices. </p><p><a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a> is a successor to <a href="/wiki/Maclisp" title="Maclisp">Maclisp</a>. The primary influences were <a href="/wiki/Lisp_Machine_Lisp" title="Lisp Machine Lisp">Lisp Machine Lisp</a>, Maclisp, <a href="/wiki/NIL_(programming_language)" title="NIL (programming language)">NIL</a>, <a href="/wiki/S-1_Lisp" title="S-1 Lisp">S-1 Lisp</a>, <a href="/wiki/Spice_Lisp" title="Spice Lisp">Spice Lisp</a>, and Scheme.<sup id="cite_ref-uMuJD_49-0" class="reference"><a href="#cite_note-uMuJD-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup> It has many of the features of Lisp Machine Lisp (a large Lisp dialect used to program <a href="/wiki/Lisp_Machine" class="mw-redirect" title="Lisp Machine">Lisp Machines</a>), but was designed to be efficiently implementable on any personal computer or workstation. Common Lisp is a general-purpose programming language and thus has a large language standard including many built-in data types, functions, macros and other language elements, and an object system (<a href="/wiki/Common_Lisp_Object_System" title="Common Lisp Object System">Common Lisp Object System</a>). Common Lisp also borrowed certain features from Scheme such as <a href="/wiki/Lexical_scoping" class="mw-redirect" title="Lexical scoping">lexical scoping</a> and <a href="/wiki/Lexical_closure" class="mw-redirect" title="Lexical closure">lexical closures</a>. Common Lisp implementations are available for targeting different platforms such as the <a href="/wiki/LLVM" title="LLVM">LLVM</a>,<sup id="cite_ref-hEWIZ_50-0" class="reference"><a href="#cite_note-hEWIZ-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup> the <a href="/wiki/Java_virtual_machine" title="Java virtual machine">Java virtual machine</a>,<sup id="cite_ref-vBfvI_51-0" class="reference"><a href="#cite_note-vBfvI-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup> x86-64, PowerPC, Alpha, ARM, Motorola 68000, and MIPS,<sup id="cite_ref-za6Q8_52-0" class="reference"><a href="#cite_note-za6Q8-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> and operating systems such as Windows, macOS, Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Dragonfly BSD, and Heroku.<sup id="cite_ref-QX6kG_53-0" class="reference"><a href="#cite_note-QX6kG-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> </p><p>Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by <a href="/wiki/Guy_L._Steele,_Jr." class="mw-redirect" title="Guy L. Steele, Jr.">Guy L. Steele, Jr.</a> and <a href="/wiki/Gerald_Jay_Sussman" title="Gerald Jay Sussman">Gerald Jay Sussman</a>. It was designed to have exceptionally clear and simple semantics and few different ways to form expressions. Designed about a decade earlier than Common Lisp, <a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a> is a more minimalist design. It has a much smaller set of standard features but with certain implementation features (such as <a href="/wiki/Tail-call_optimization" class="mw-redirect" title="Tail-call optimization">tail-call optimization</a> and full <a href="/wiki/Continuation" title="Continuation">continuations</a>) not specified in Common Lisp. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme. Scheme continues to evolve with a series of standards (Revised<sup>n</sup> Report on the Algorithmic Language Scheme) and a series of <a href="/wiki/Scheme_Requests_for_Implementation" title="Scheme Requests for Implementation">Scheme Requests for Implementation</a>. </p><p><a href="/wiki/Clojure" title="Clojure">Clojure</a> is a dialect of Lisp that targets mainly the <a href="/wiki/Java_virtual_machine" title="Java virtual machine">Java virtual machine</a>, and the <a href="/wiki/Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a> (CLR), the <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a> VM, the Ruby VM <a href="/wiki/YARV" title="YARV">YARV</a>, and compiling to <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>. It is designed to be a pragmatic general-purpose language. Clojure draws considerable influences from <a href="/wiki/Haskell" title="Haskell">Haskell</a> and places a very strong emphasis on immutability.<sup id="cite_ref-clojure-immutability_54-0" class="reference"><a href="#cite_note-clojure-immutability-54"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup> Clojure provides access to Java frameworks and libraries, with optional type hints and <a href="/wiki/Type_inference" title="Type inference">type inference</a>, so that calls to Java can avoid reflection and enable fast primitive operations. Clojure is not designed to be backwards compatible with other Lisp dialects.<sup id="cite_ref-f6C82_55-0" class="reference"><a href="#cite_note-f6C82-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup> </p><p>Further, Lisp dialects are used as <a href="/wiki/Scripting_language" title="Scripting language">scripting languages</a> in many applications, with the best-known being <a href="/wiki/Emacs_Lisp" title="Emacs Lisp">Emacs Lisp</a> in the <a href="/wiki/Emacs" title="Emacs">Emacs</a> editor, <a href="/wiki/AutoLISP" title="AutoLISP">AutoLISP</a> and later <a href="/wiki/Visual_Lisp" class="mw-redirect" title="Visual Lisp">Visual Lisp</a> in <a href="/wiki/AutoCAD" title="AutoCAD">AutoCAD</a>, Nyquist in <a href="/wiki/Audacity_(audio_editor)" title="Audacity (audio editor)">Audacity</a>, and Scheme in <a href="/wiki/LilyPond" title="LilyPond">LilyPond</a>. The potential small size of a useful Scheme interpreter makes it particularly popular for embedded scripting. Examples include <a href="/wiki/SIOD" title="SIOD">SIOD</a> and <a href="/wiki/TinyScheme" title="TinyScheme">TinyScheme</a>, both of which have been successfully embedded in the <a href="/wiki/GIMP" title="GIMP">GIMP</a> image processor under the generic name "Script-fu".<sup id="cite_ref-script-fu_56-0" class="reference"><a href="#cite_note-script-fu-56"><span class="cite-bracket">[</span>56<span class="cite-bracket">]</span></a></sup> LIBREP, a Lisp interpreter by John Harper originally based on the <a href="/wiki/Emacs_Lisp" title="Emacs Lisp">Emacs Lisp</a> language, has been embedded in the <a href="/wiki/Sawfish_(window_manager)" title="Sawfish (window manager)">Sawfish</a> <a href="/wiki/Window_manager" title="Window manager">window manager</a>.<sup id="cite_ref-librep_57-0" class="reference"><a href="#cite_note-librep-57"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Standardized_dialects">Standardized dialects</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=8" title="Edit section: Standardized dialects"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lisp has officially standardized dialects: <a href="/wiki/Scheme_(programming_language)#R6RS" title="Scheme (programming language)">R6RS Scheme</a>, <a href="/wiki/Scheme_(programming_language)#R7RS" title="Scheme (programming language)">R7RS Scheme</a>, IEEE Scheme,<sup id="cite_ref-LQgpj_58-0" class="reference"><a href="#cite_note-LQgpj-58"><span class="cite-bracket">[</span>58<span class="cite-bracket">]</span></a></sup> <a href="/wiki/ANSI_Common_Lisp" class="mw-redirect" title="ANSI Common Lisp">ANSI Common Lisp</a> and ISO <a href="/wiki/ISLISP" title="ISLISP">ISLISP</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Language_innovations">Language innovations</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=9" title="Edit section: Language innovations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Paul_Graham_(programmer)" title="Paul Graham (programmer)">Paul Graham</a> identifies nine important aspects of Lisp that distinguished it from existing languages like <a href="/wiki/Fortran" title="Fortran">Fortran</a>:<sup id="cite_ref-59" class="reference"><a href="#cite_note-59"><span class="cite-bracket">[</span>59<span class="cite-bracket">]</span></a></sup> </p> <ul><li><a href="/wiki/Conditional_(computer_programming)" title="Conditional (computer programming)">Conditionals</a> not limited to <a href="/wiki/Goto" title="Goto">goto</a></li> <li><a href="/wiki/First-class_function" title="First-class function">First-class functions</a></li> <li><a href="/wiki/Recursion" title="Recursion">Recursion</a></li> <li>Treating variables uniformly as <a href="/wiki/Pointer_(computer_programming)" title="Pointer (computer programming)">pointers</a>, leaving types to values</li> <li><a href="/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">Garbage collection</a></li> <li>Programs made entirely of <a href="/wiki/Expression_(computer_science)" title="Expression (computer science)">expressions</a> with no <a href="/wiki/Statement_(computer_science)" title="Statement (computer science)">statements</a></li> <li>The <a href="/wiki/Symbol_(programming)" title="Symbol (programming)">symbol</a> data type, distinct from the <a href="/wiki/String_(computer_science)" title="String (computer science)">string</a> data type</li> <li>Notation for code made of trees of symbols (using many <a href="/wiki/Parentheses" class="mw-redirect" title="Parentheses">parentheses</a>)</li> <li>Full language available at <a href="/wiki/Load_time" class="mw-redirect" title="Load time">load time</a>, <a href="/wiki/Compile_time" title="Compile time">compile time</a>, and <a href="/wiki/Runtime_(program_lifecycle_phase)" class="mw-redirect" title="Runtime (program lifecycle phase)">run time</a></li></ul> <p>Lisp was the first language where the structure of program code is represented faithfully and directly in a standard data structure—a quality much later dubbed "<a href="/wiki/Homoiconicity" title="Homoiconicity">homoiconicity</a>". Thus, Lisp functions can be manipulated, altered or even created within a Lisp program without lower-level manipulations. This is generally considered one of the main advantages of the language with regard to its expressive power, and makes the language suitable for syntactic macros and <a href="/wiki/Meta-circular_evaluator" title="Meta-circular evaluator">meta-circular evaluation</a>. </p><p>A conditional using an <i><a href="/wiki/If%E2%80%93then%E2%80%93else" class="mw-redirect" title="If–then–else">if–then–else</a></i> syntax was invented by McCarthy for a chess program written in <a href="/wiki/Fortran" title="Fortran">Fortran</a>. He proposed its inclusion in <a href="/wiki/ALGOL" title="ALGOL">ALGOL</a>, but it was not made part of the <a href="/wiki/Algol_58" class="mw-redirect" title="Algol 58">Algol 58</a> specification. For Lisp, McCarthy used the more general <i>cond</i>-structure.<sup id="cite_ref-bUXap_60-0" class="reference"><a href="#cite_note-bUXap-60"><span class="cite-bracket">[</span>60<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Algol_60" class="mw-redirect" title="Algol 60">Algol 60</a> took up <i>if–then–else</i> and popularized it. </p><p>Lisp deeply influenced <a href="/wiki/Alan_Kay" title="Alan Kay">Alan Kay</a>, the leader of the research team that developed <a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> at <a href="/wiki/Xerox_PARC" class="mw-redirect" title="Xerox PARC">Xerox PARC</a>; and in turn Lisp was influenced by Smalltalk, with later dialects adopting object-oriented programming features (inheritance classes, encapsulating instances, message passing, etc.) in the 1970s. The <a href="/wiki/Flavors_(programming_language)" title="Flavors (programming language)">Flavors</a> object system introduced the concept of <a href="/wiki/Multiple_inheritance" title="Multiple inheritance">multiple inheritance</a> and the <a href="/wiki/Mixin" title="Mixin">mixin</a>. The <a href="/wiki/Common_Lisp_Object_System" title="Common Lisp Object System">Common Lisp Object System</a> provides multiple inheritance, multimethods with <a href="/wiki/Multiple_dispatch" title="Multiple dispatch">multiple dispatch</a>, and first-class <a href="/wiki/Generic_functions" class="mw-redirect" title="Generic functions">generic functions</a>, yielding a flexible and powerful form of <a href="/wiki/Dynamic_dispatch" title="Dynamic dispatch">dynamic dispatch</a>. It has served as the template for many subsequent Lisp (including <a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a>) object systems, which are often implemented via a <a href="/wiki/Metaobject#Metaobject_Protocol" title="Metaobject">metaobject protocol</a>, a <a href="/wiki/Reflective_programming" title="Reflective programming">reflective</a> <a href="/wiki/Meta-circular_evaluator" title="Meta-circular evaluator">meta-circular design</a> in which the object system is defined in terms of itself: Lisp was only the second language after Smalltalk (and is still one of the very few languages) to possess such a metaobject system. Many years later, Alan Kay suggested that as a result of the confluence of these features, only Smalltalk and Lisp could be regarded as properly conceived object-oriented programming systems.<sup id="cite_ref-4I08d_61-0" class="reference"><a href="#cite_note-4I08d-61"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup> </p><p>Lisp introduced the concept of <a href="/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">automatic garbage collection</a>, in which the system walks the <a href="/wiki/Heap_(memory_management)" class="mw-redirect" title="Heap (memory management)">heap</a> looking for unused memory. Progress in modern sophisticated garbage collection algorithms such as generational garbage collection was stimulated by its use in Lisp.<sup id="cite_ref-dpvwj_62-0" class="reference"><a href="#cite_note-dpvwj-62"><span class="cite-bracket">[</span>62<span class="cite-bracket">]</span></a></sup> </p><p><a href="/wiki/Edsger_W._Dijkstra" title="Edsger W. Dijkstra">Edsger W. Dijkstra</a> in his 1972 <a href="/wiki/Turing_Award" title="Turing Award">Turing Award</a> lecture said, </p> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1244412712"><blockquote class="templatequote"><p>With a few very basic principles at its foundation, it [LISP] has shown a remarkable stability. Besides that, LISP has been the carrier for a considerable number of in a sense our most sophisticated computer applications. LISP has jokingly been described as "the most intelligent way to misuse a computer". I think that description a great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.<sup id="cite_ref-v8uNE_63-0" class="reference"><a href="#cite_note-v8uNE-63"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup></p></blockquote> <p>Largely because of its resource requirements with respect to early computing hardware (including early microprocessors), Lisp did not become as popular outside of the <a href="/wiki/AI" class="mw-redirect" title="AI">AI</a> community as <a href="/wiki/Fortran" title="Fortran">Fortran</a> and the <a href="/wiki/ALGOL" title="ALGOL">ALGOL</a>-descended <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a> language. Because of its suitability to complex and dynamic applications, Lisp enjoyed some resurgence of popular interest in the 2010s.<sup id="cite_ref-chI3V_64-0" class="reference"><a href="#cite_note-chI3V-64"><span class="cite-bracket">[</span>64<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Syntax_and_semantics">Syntax and semantics</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=10" title="Edit section: Syntax and semantics"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <dl><dd><i>This article's examples are written in <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a> (though most are also valid in <a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a>).</i></dd></dl> <div class="mw-heading mw-heading3"><h3 id="Symbolic_expressions_(S-expressions)"><span id="Symbolic_expressions_.28S-expressions.29"></span>Symbolic expressions (S-expressions)</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=11" title="Edit section: Symbolic expressions (S-expressions)"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lisp is an <a href="/wiki/Expression_oriented_language" class="mw-redirect" title="Expression oriented language">expression oriented language</a>. Unlike most other languages, no distinction is made between "expressions" and <a href="/wiki/Statement_(programming)" class="mw-redirect" title="Statement (programming)">"statements"</a>;<sup class="noprint Inline-Template" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Accuracy_dispute#Disputed_statement" title="Wikipedia:Accuracy dispute"><span title="The material near this tag is possibly inaccurate or nonfactual. (April 2013)">dubious</span></a> – <a href="/wiki/Talk:Lisp_(programming_language)#Dubious" title="Talk:Lisp (programming language)">discuss</a></i>]</sup> all code and data are written as expressions. When an expression is <i>evaluated</i>, it produces a value (possibly multiple values), which can then be embedded into other expressions. Each value can be any data type. </p><p>McCarthy's 1958 paper introduced two types of syntax: <i>Symbolic expressions</i> (<a href="/wiki/S-expression" title="S-expression">S-expressions</a>, sexps), which mirror the internal representation of code and data; and <i>Meta expressions</i> (<a href="/wiki/M-expression" title="M-expression">M-expressions</a>), which express functions of S-expressions. M-expressions never found favor, and almost all Lisps today use S-expressions to manipulate both code and data. </p><p>The use of parentheses is Lisp's most immediately obvious difference from other programming language families. As a result, students have long given Lisp nicknames such as <i>Lost In Stupid Parentheses</i>, or <i>Lots of Irritating Superfluous Parentheses</i>.<sup id="cite_ref-LEVIN2_65-0" class="reference"><a href="#cite_note-LEVIN2-65"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup> However, the S-expression syntax is also responsible for much of Lisp's power: the syntax is simple and consistent, which facilitates manipulation by computer. However, the syntax of Lisp is not limited to traditional parentheses notation. It can be extended to include alternative notations. For example, XMLisp is a Common Lisp extension that employs the <a href="/wiki/Metaobject#Metaobject_protocol" title="Metaobject">metaobject protocol</a> to integrate S-expressions with the Extensible Markup Language (<a href="/wiki/XML" title="XML">XML</a>). </p><p>The reliance on expressions gives the language great flexibility. Because Lisp <a href="/wiki/Function_(programming)" class="mw-redirect" title="Function (programming)">functions</a> are written as lists, they can be processed exactly like data. This allows easy writing of programs which manipulate other programs (<a href="/wiki/Metaprogramming" title="Metaprogramming">metaprogramming</a>). Many Lisp dialects exploit this feature using macro systems, which enables extension of the language almost without limit. </p> <div class="mw-heading mw-heading3"><h3 id="Lists">Lists</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=12" title="Edit section: Lists"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A Lisp list is written with its elements separated by <a href="/wiki/Whitespace_character" title="Whitespace character">whitespace</a>, and surrounded by parentheses. For example, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="nv">foo</span><span class="p">)</span></code> is a list whose elements are the three <i>atoms</i> <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">1</span></code>, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">2</span></code>, and <a href="/wiki/Foo" class="mw-redirect" title="Foo"><code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">foo</span></code></a>. These values are implicitly typed: they are respectively two integers and a Lisp-specific data type called a "symbol", and do not have to be declared as such. </p><p>The empty list <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">()</span></code> is also represented as the special atom <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="no">nil</span></code>. This is the only entity in Lisp which is both an atom and a list. </p><p>Expressions are written as lists, using <a href="/wiki/Polish_notation" title="Polish notation">prefix notation</a>. The first element in the list is the name of a function, the name of a macro, a lambda expression or the name of a "special operator" (see below). The remainder of the list are the arguments. For example, the function <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">list</span></code> returns its arguments as a list, so the expression </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">list</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p">(</span><span class="k">quote</span><span class="w"> </span><span class="nv">foo</span><span class="p">))</span> </pre></div> <p>evaluates to the list <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="nv">foo</span><span class="p">)</span></code>. The "quote" before the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">foo</span></code> in the preceding example is a "special operator" which returns its argument without evaluating it. Any unquoted expressions are recursively evaluated before the enclosing expression is evaluated. For example, </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">list</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p">(</span><span class="nb">list</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="mi">4</span><span class="p">))</span> </pre></div> <p>evaluates to the list <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="mi">4</span><span class="p">))</span></code>. The third argument is a list; lists can be nested. </p> <div class="mw-heading mw-heading3"><h3 id="Operators">Operators</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=13" title="Edit section: Operators"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Arithmetic operators are treated similarly. The expression </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="mi">4</span><span class="p">)</span> </pre></div> <p>evaluates to 10. The equivalent under <a href="/wiki/Infix_notation" title="Infix notation">infix notation</a> would be "<code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">1</span><span class="w"> </span><span class="nb">+</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="nb">+</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="nb">+</span><span class="w"> </span><span class="mi">4</span></code>". </p><p>Lisp has no notion of operators as implemented in Algol-derived languages. Arithmetic operators in Lisp are <a href="/wiki/Variadic_function" title="Variadic function">variadic functions</a> (or <i>n-ary</i>), able to take any number of arguments. A C-style '++' increment operator is sometimes implemented under the name <code>incf</code> giving syntax </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">incf</span><span class="w"> </span><span class="nv">x</span><span class="p">)</span> </pre></div> <p>equivalent to <code>(setq x (+ x 1))</code>, returning the new value of <code>x</code>. </p><p>"Special operators" (sometimes called "special forms") provide Lisp's control structure. For example, the special operator <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="k">if</span></code> takes three arguments. If the first argument is non-nil, it evaluates to the second argument; otherwise, it evaluates to the third argument. Thus, the expression </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="k">if</span><span class="w"> </span><span class="no">nil</span> <span class="w"> </span><span class="p">(</span><span class="nb">list</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="s">"foo"</span><span class="p">)</span> <span class="w"> </span><span class="p">(</span><span class="nb">list</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="s">"bar"</span><span class="p">))</span> </pre></div> <p>evaluates to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="s">"bar"</span><span class="p">)</span></code>. Of course, this would be more useful if a non-trivial expression had been substituted in place of <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="no">nil</span></code>. </p><p>Lisp also provides logical operators <b>and</b>, <b>or</b> and <b>not</b>. The <b>and</b> and <b>or</b> operators do <a href="/wiki/Short-circuit_evaluation" title="Short-circuit evaluation">short-circuit evaluation</a> and will return their first nil and non-nil argument respectively. </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">or</span><span class="w"> </span><span class="p">(</span><span class="nb">and</span><span class="w"> </span><span class="s">"zero"</span><span class="w"> </span><span class="no">nil</span><span class="w"> </span><span class="s">"never"</span><span class="p">)</span><span class="w"> </span><span class="s">"James"</span><span class="w"> </span><span class="ss">'task</span><span class="w"> </span><span class="ss">'time</span><span class="p">)</span> </pre></div> <p>will evaluate to "James". </p> <div class="mw-heading mw-heading3"><h3 id="Lambda_expressions_and_function_definition">Lambda expressions and function definition</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=14" title="Edit section: Lambda expressions and function definition"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Another special operator, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="k">lambda</span></code>, is used to bind variables to values which are then evaluated within an expression. This operator is also used to create functions: the arguments to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="k">lambda</span></code> are a list of arguments, and the expression or expressions to which the function evaluates (the returned value is the value of the last expression that is evaluated). The expression </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="k">lambda</span><span class="w"> </span><span class="p">(</span><span class="nv">arg</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nb">+</span><span class="w"> </span><span class="nv">arg</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span> </pre></div> <p>evaluates to a function that, when applied, takes one argument, binds it to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">arg</span></code> and returns the number one greater than that argument. Lambda expressions are treated no differently from named functions; they are invoked the same way. Therefore, the expression </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">((</span><span class="k">lambda</span><span class="w"> </span><span class="p">(</span><span class="nv">arg</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nb">+</span><span class="w"> </span><span class="nv">arg</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class="mi">5</span><span class="p">)</span> </pre></div> <p>evaluates to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">6</span></code>. Here, we're doing a function application: we execute the <a href="/wiki/Anonymous_function" title="Anonymous function">anonymous function</a> by passing to it the value 5. </p><p>Named functions are created by storing a lambda expression in a symbol using the defun macro. </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">defun</span><span class="w"> </span><span class="nv">foo</span><span class="w"> </span><span class="p">(</span><span class="nv">a</span><span class="w"> </span><span class="nv">b</span><span class="w"> </span><span class="nv">c</span><span class="w"> </span><span class="nv">d</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nb">+</span><span class="w"> </span><span class="nv">a</span><span class="w"> </span><span class="nv">b</span><span class="w"> </span><span class="nv">c</span><span class="w"> </span><span class="nv">d</span><span class="p">))</span> </pre></div> <p><code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nb">defun</span><span class="w"> </span><span class="nv">f</span><span class="w"> </span><span class="p">(</span><span class="nv">a</span><span class="p">)</span><span class="w"> </span><span class="nv">b...</span><span class="p">)</span></code> defines a new function named <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">f</span></code> in the global environment. It is conceptually similar to the expression: </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">setf</span><span class="w"> </span><span class="p">(</span><span class="nb">fdefinition</span><span class="w"> </span><span class="ss">'f</span><span class="p">)</span><span class="w"> </span><span class="nf">#'</span><span class="p">(</span><span class="k">lambda</span><span class="w"> </span><span class="p">(</span><span class="nv">a</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="k">block</span><span class="w"> </span><span class="nv">f</span><span class="w"> </span><span class="nv">b...</span><span class="p">)))</span> </pre></div> <p>where <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">setf</span></code> is a macro used to set the value of the first argument <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">fdefinition</span><span class="w"> </span><span class="ss">'f</span></code> to a new function object. <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">fdefinition</span></code> is a global function definition for the function named <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">f</span></code>. <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nf">#'</span></code> is an abbreviation for <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="k">function</span></code> special operator, returning a function object. </p> <div class="mw-heading mw-heading3"><h3 id="Atoms">Atoms</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=15" title="Edit section: Atoms"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In the original <b>LISP</b> there were two fundamental <a href="/wiki/Data_type" title="Data type">data types</a>: atoms and lists. A list was a finite ordered sequence of elements, where each element is either an atom or a list, and an atom was a <a href="/wiki/Number" title="Number">number</a> or a symbol. A symbol was essentially a unique named item, written as an <a href="/wiki/Alphanumeric" class="mw-redirect" title="Alphanumeric">alphanumeric</a> string in <a href="/wiki/Source_code" title="Source code">source code</a>, and used either as a variable name or as a data item in <a href="/wiki/Symbolic_processing" class="mw-redirect" title="Symbolic processing">symbolic processing</a>. For example, the list <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">FOO</span><span class="w"> </span><span class="p">(</span><span class="nv">BAR</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span></code> contains three elements: the symbol <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">FOO</span></code>, the list <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">BAR</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span></code>, and the number 2. </p><p>The essential difference between atoms and lists was that atoms were immutable and unique. Two atoms that appeared in different places in source code but were written in exactly the same way represented the same object,<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (November 2008)">citation needed</span></a></i>]</sup> whereas each list was a separate object that could be altered independently of other lists and could be distinguished from other lists by comparison operators. </p><p>As more data types were introduced in later Lisp dialects, and <a href="/wiki/Programming_style" title="Programming style">programming styles</a> evolved, the concept of an atom lost importance.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (November 2008)">citation needed</span></a></i>]</sup> Many dialects still retained the predicate <i>atom</i> for <a href="/wiki/Legacy_compatibility" class="mw-redirect" title="Legacy compatibility">legacy compatibility</a>,<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (November 2008)">citation needed</span></a></i>]</sup> defining it true for any object which is not a cons. </p> <div class="mw-heading mw-heading3"><h3 id="Conses_and_lists">Conses and lists</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=16" title="Edit section: Conses and lists"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Cons" title="Cons">Cons</a></div> <figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:Cons-cells.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Cons-cells.svg/300px-Cons-cells.svg.png" decoding="async" width="300" height="73" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Cons-cells.svg/450px-Cons-cells.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Cons-cells.svg/600px-Cons-cells.svg.png 2x" data-file-width="685" data-file-height="167" /></a><figcaption>Box-and-<a href="/wiki/Pointer_(computer_programming)" title="Pointer (computer programming)">pointer</a> diagram for the list (42 69 613)</figcaption></figure> <p>A Lisp list is implemented as a <a href="/wiki/Singly_linked_list" class="mw-redirect" title="Singly linked list">singly linked list</a>.<sup id="cite_ref-SebestaLanguages_66-0" class="reference"><a href="#cite_note-SebestaLanguages-66"><span class="cite-bracket">[</span>66<span class="cite-bracket">]</span></a></sup> Each cell of this list is called a <i>cons</i> (in Scheme, a <i>pair</i>) and is composed of two <a href="/wiki/Pointer_(computer_programming)" title="Pointer (computer programming)">pointers</a>, called the <i>car</i> and <i>cdr</i>. These are respectively equivalent to the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">data</span></code> and <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">next</span></code> fields discussed in the article <i><a href="/wiki/Linked_list" title="Linked list">linked list</a></i>. </p><p>Of the many data structures that can be built out of cons cells, one of the most basic is called a <i>proper list</i>. A proper list is either the special <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="no">nil</span></code> (empty list) symbol, or a cons in which the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">car</span></code> points to a datum (which may be another cons structure, such as a list), and the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">cdr</span></code> points to another proper list. </p><p>If a given cons is taken to be the head of a linked list, then its car points to the first element of the list, and its cdr points to the rest of the list. For this reason, the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">car</span></code> and <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">cdr</span></code> functions are also called <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">first</span></code> and <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">rest</span></code> when referring to conses which are part of a linked list (rather than, say, a tree). </p><p>Thus, a Lisp list is not an atomic object, as an instance of a container class in C++ or Java would be. A list is nothing more than an aggregate of linked conses. A variable that refers to a given list is simply a pointer to the first cons in the list. Traversal of a list can be done by <i>cdring down</i> the list; that is, taking successive cdrs to visit each cons of the list; or by using any of several <a href="/wiki/Higher-order_function" title="Higher-order function">higher-order functions</a> to map a function over a list. </p><p>Because conses and lists are so universal in Lisp systems, it is a common misconception that they are Lisp's only data structures. In fact, all but the most simplistic Lisps have other data structures, such as vectors (<a href="/wiki/Array_data_type" class="mw-redirect" title="Array data type">arrays</a>), <a href="/wiki/Hash_table" title="Hash table">hash tables</a>, structures, and so forth. </p> <div class="mw-heading mw-heading4"><h4 id="S-expressions_represent_lists">S-expressions represent lists</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=17" title="Edit section: S-expressions represent lists"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Parenthesized S-expressions represent linked list structures. There are several ways to represent the same list as an S-expression. A cons can be written in <i>dotted-pair notation</i> as <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">a</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="nv">b</span><span class="p">)</span></code>, where <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">a</span></code> is the car and <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">b</span></code> the cdr. A longer proper list might be written <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">a</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="nv">b</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="nv">c</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="nv">d</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="no">nil</span><span class="p">))))</span></code> in dotted-pair notation. This is conventionally abbreviated as <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">a</span><span class="w"> </span><span class="nv">b</span><span class="w"> </span><span class="nv">c</span><span class="w"> </span><span class="nv">d</span><span class="p">)</span></code> in <i>list notation</i>. An improper list<sup id="cite_ref-r3sL3_67-0" class="reference"><a href="#cite_note-r3sL3-67"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup> may be written in a combination of the two – as <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">a</span><span class="w"> </span><span class="nv">b</span><span class="w"> </span><span class="nv">c</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="nv">d</span><span class="p">)</span></code> for the list of three conses whose last cdr is <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">d</span></code> (i.e., the list <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">a</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="nv">b</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="p">(</span><span class="nv">c</span><span class="w"> </span><span class="o">.</span><span class="w"> </span><span class="nv">d</span><span class="p">)))</span></code> in fully specified form). </p> <div class="mw-heading mw-heading4"><h4 id="List-processing_procedures">List-processing procedures</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=18" title="Edit section: List-processing procedures"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lisp provides many built-in procedures for accessing and controlling lists. Lists can be created directly with the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">list</span></code> procedure, which takes any number of arguments, and returns the list of these arguments. </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">list</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="ss">'a</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span> <span class="w"> </span><span class="c1">;Output: (1 2 a 3)</span> </pre></div> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">list</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="mi">4</span><span class="p">)</span> <span class="w"> </span><span class="c1">;Output: (1 (2 3) 4)</span> </pre></div> <p>Because of the way that lists are constructed from <a href="/wiki/Cons_pair" class="mw-redirect" title="Cons pair">cons pairs</a>, the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">cons</span></code> procedure can be used to add an element to the front of a list. The <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">cons</span></code> procedure is asymmetric in how it handles list arguments, because of how lists are constructed. </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">cons</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="mi">3</span><span class="p">))</span> <span class="w"> </span><span class="c1">;Output: (1 2 3)</span> </pre></div> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">cons</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="mi">4</span><span class="p">))</span> <span class="w"> </span><span class="c1">;Output: ((1 2) 3 4)</span> </pre></div> <p>The <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">append</span></code> procedure appends two (or more) lists to one another. Because Lisp lists are linked lists, appending two lists has <a href="/wiki/Big_O_notation" title="Big O notation">asymptotic time complexity</a> <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle O(n)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>O</mi> <mo stretchy="false">(</mo> <mi>n</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle O(n)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/34109fe397fdcff370079185bfdb65826cb5565a" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:4.977ex; height:2.843ex;" alt="{\displaystyle O(n)}"></span> </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">append</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="mi">4</span><span class="p">))</span> <span class="w"> </span><span class="c1">;Output: (1 2 3 4)</span> </pre></div> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">append</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="o">'</span><span class="p">()</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="nv">a</span><span class="p">)</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">5</span><span class="w"> </span><span class="mi">6</span><span class="p">))</span> <span class="w"> </span><span class="c1">;Output: (1 2 3 a 5 6)</span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="Shared_structure">Shared structure</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=19" title="Edit section: Shared structure"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lisp lists, being simple linked lists, can share structure with one another. That is to say, two lists can have the same <i>tail</i>, or final sequence of conses. For instance, after the execution of the following Common Lisp code: </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="nb">setf</span><span class="w"> </span><span class="nv">foo</span><span class="w"> </span><span class="p">(</span><span class="nb">list</span><span class="w"> </span><span class="ss">'a</span><span class="w"> </span><span class="ss">'b</span><span class="w"> </span><span class="ss">'c</span><span class="p">))</span> <span class="p">(</span><span class="nb">setf</span><span class="w"> </span><span class="nv">bar</span><span class="w"> </span><span class="p">(</span><span class="nb">cons</span><span class="w"> </span><span class="ss">'x</span><span class="w"> </span><span class="p">(</span><span class="nb">cdr</span><span class="w"> </span><span class="nv">foo</span><span class="p">)))</span> </pre></div> <p>the lists <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">foo</span></code> and <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">bar</span></code> are <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">a</span><span class="w"> </span><span class="nv">b</span><span class="w"> </span><span class="nv">c</span><span class="p">)</span></code> and <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">x</span><span class="w"> </span><span class="nv">b</span><span class="w"> </span><span class="nv">c</span><span class="p">)</span></code> respectively. However, the tail <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">b</span><span class="w"> </span><span class="nv">c</span><span class="p">)</span></code> is the same structure in both lists. It is not a copy; the cons cells pointing to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">b</span></code> and <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">c</span></code> are in the same memory locations for both lists. </p><p>Sharing structure rather than copying can give a dramatic performance improvement. However, this technique can interact in undesired ways with functions that alter lists passed to them as arguments. Altering one list, such as by replacing the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">c</span></code> with a <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">goose</span></code>, will affect the other: </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">setf</span><span class="w"> </span><span class="p">(</span><span class="nb">third</span><span class="w"> </span><span class="nv">foo</span><span class="p">)</span><span class="w"> </span><span class="ss">'goose</span><span class="p">)</span> </pre></div> <p>This changes <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">foo</span></code> to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">a</span><span class="w"> </span><span class="nv">b</span><span class="w"> </span><span class="nv">goose</span><span class="p">)</span></code>, but thereby also changes <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">bar</span></code> to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">x</span><span class="w"> </span><span class="nv">b</span><span class="w"> </span><span class="nv">goose</span><span class="p">)</span></code> – a possibly unexpected result. This can be a source of bugs, and functions which alter their arguments are documented as <i>destructive</i> for this very reason. </p><p>Aficionados of <a href="/wiki/Functional_programming" title="Functional programming">functional programming</a> avoid destructive functions. In the Scheme dialect, which favors the functional style, the names of destructive functions are marked with a cautionary exclamation point, or "bang"—such as <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">set-car!</span></code> (read <i>set car bang</i>), which replaces the car of a cons. In the Common Lisp dialect, destructive functions are commonplace; the equivalent of <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">set-car!</span></code> is named <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">rplaca</span></code> for "replace car". This function is rarely seen, however, as Common Lisp includes a special facility, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">setf</span></code>, to make it easier to define and use destructive functions. A frequent style in Common Lisp is to write code functionally (without destructive calls) when prototyping, then to add destructive calls as an optimization where it is safe to do so. </p> <div class="mw-heading mw-heading3"><h3 id="Self-evaluating_forms_and_quoting">Self-evaluating forms and quoting</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=20" title="Edit section: Self-evaluating forms and quoting"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lisp evaluates expressions which are entered by the user. Symbols and lists evaluate to some other (usually, simpler) expression – for instance, a symbol evaluates to the value of the variable it names; <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nb">+</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span></code> evaluates to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">5</span></code>. However, most other forms evaluate to themselves: if entering <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">5</span></code> into Lisp, it returns <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">5</span></code>. </p><p>Any expression can also be marked to prevent it from being evaluated (as is necessary for symbols and lists). This is the role of the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="k">quote</span></code> special operator, or its abbreviation <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="o">'</span></code> (one quotation mark). For instance, usually if entering the symbol <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">foo</span></code>, it returns the value of the corresponding variable (or an error, if there is no such variable). To refer to the literal symbol, enter <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="k">quote</span><span class="w"> </span><span class="nv">foo</span><span class="p">)</span></code> or, usually, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="ss">'foo</span></code>. </p><p><span class="anchor" id="Backquote"></span>Both Common Lisp and Scheme also support the <i>backquote</i> operator (termed <i><a href="/wiki/Quasiquote" class="mw-redirect" title="Quasiquote">quasiquote</a></i> in Scheme), entered with the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="o">`</span></code> character (<a href="/wiki/Grave_accent#Use_in_programming" title="Grave accent">grave accent</a>). This is almost the same as the plain quote, except it allows expressions to be evaluated and their values interpolated into a quoted list with the comma <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="o">,</span></code> <i>unquote</i> and comma-at <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="o">,@</span></code> <i>splice</i> operators. If the variable <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">snue</span></code> has the value <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">bar</span><span class="w"> </span><span class="nv">baz</span><span class="p">)</span></code> then <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="o">`</span><span class="p">(</span><span class="nv">foo</span><span class="w"> </span><span class="o">,</span><span class="nv">snue</span><span class="p">)</span></code> evaluates to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">foo</span><span class="w"> </span><span class="p">(</span><span class="nv">bar</span><span class="w"> </span><span class="nv">baz</span><span class="p">))</span></code>, while <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="o">`</span><span class="p">(</span><span class="nv">foo</span><span class="w"> </span><span class="o">,@</span><span class="nv">snue</span><span class="p">)</span></code> evaluates to <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nv">foo</span><span class="w"> </span><span class="nv">bar</span><span class="w"> </span><span class="nv">baz</span><span class="p">)</span></code>. The backquote is most often used in defining macro expansions.<sup id="cite_ref-cTQAG_68-0" class="reference"><a href="#cite_note-cTQAG-68"><span class="cite-bracket">[</span>68<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-waVLs_69-0" class="reference"><a href="#cite_note-waVLs-69"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup> </p><p>Self-evaluating forms and quoted forms are Lisp's equivalent of literals. It may be possible to modify the values of (mutable) literals in program code. For instance, if a function returns a quoted form, and the code that calls the function modifies the form, this may alter the behavior of the function on subsequent invocations. </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="nb">defun</span><span class="w"> </span><span class="nv">should-be-constant</span><span class="w"> </span><span class="p">()</span> <span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="nv">one</span><span class="w"> </span><span class="nv">two</span><span class="w"> </span><span class="nv">three</span><span class="p">))</span> <span class="p">(</span><span class="k">let</span><span class="w"> </span><span class="p">((</span><span class="nv">stuff</span><span class="w"> </span><span class="p">(</span><span class="nv">should-be-constant</span><span class="p">)))</span> <span class="w"> </span><span class="p">(</span><span class="nb">setf</span><span class="w"> </span><span class="p">(</span><span class="nb">third</span><span class="w"> </span><span class="nv">stuff</span><span class="p">)</span><span class="w"> </span><span class="ss">'bizarre</span><span class="p">))</span><span class="w"> </span><span class="c1">; bad!</span> <span class="p">(</span><span class="nv">should-be-constant</span><span class="p">)</span><span class="w"> </span><span class="c1">; returns (one two bizarre)</span> </pre></div> <p>Modifying a quoted form like this is generally considered bad style, and is defined by ANSI Common Lisp as erroneous (resulting in "undefined" behavior in compiled files, because the file-compiler can coalesce similar constants, put them in write-protected memory, etc.). </p><p>Lisp's formalization of quotation has been noted by <a href="/wiki/Douglas_Hofstadter" title="Douglas Hofstadter">Douglas Hofstadter</a> (in <i><a href="/wiki/G%C3%B6del,_Escher,_Bach" title="Gödel, Escher, Bach">Gödel, Escher, Bach</a></i>) and others as an example of the <a href="/wiki/Philosophy" title="Philosophy">philosophical</a> idea of <a href="/wiki/Self-reference" title="Self-reference">self-reference</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Scope_and_closure">Scope and closure</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=21" title="Edit section: Scope and closure"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The Lisp family splits over the use of <a href="/wiki/Dynamic_scoping" class="mw-redirect" title="Dynamic scoping">dynamic</a> or <a href="/wiki/Static_scoping" class="mw-redirect" title="Static scoping">static</a> (a.k.a. lexical) <a href="/wiki/Scope_(programming)" class="mw-redirect" title="Scope (programming)">scope</a>. Clojure, Common Lisp and Scheme make use of static scoping by default, while <a href="/wiki/NewLISP" title="NewLISP">newLISP</a>, <a href="/wiki/Picolisp" class="mw-redirect" title="Picolisp">Picolisp</a> and the embedded languages in <a href="/wiki/Emacs" title="Emacs">Emacs</a> and <a href="/wiki/AutoCAD" title="AutoCAD">AutoCAD</a> use dynamic scoping. Since version 24.1, Emacs uses both dynamic and lexical scoping. </p> <div class="mw-heading mw-heading3"><h3 id="List_structure_of_program_code;_exploitation_by_macros_and_compilers"><span id="List_structure_of_program_code.3B_exploitation_by_macros_and_compilers"></span>List structure of program code; exploitation by macros and compilers</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=22" title="Edit section: List structure of program code; exploitation by macros and compilers"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A fundamental distinction between Lisp and other languages is that in Lisp, the textual representation of a program is simply a human-readable description of the same internal data structures (linked lists, symbols, number, characters, etc.) as would be used by the underlying Lisp system. </p><p>Lisp uses this to implement a very powerful macro system. Like other macro languages such as the one defined by the <a href="/wiki/C_preprocessor" title="C preprocessor">C preprocessor</a> (the macro preprocessor for the <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a>, <a href="/wiki/Objective-C" title="Objective-C">Objective-C</a> and <a href="/wiki/C%2B%2B" title="C++">C++</a> programming languages), a macro returns code that can then be compiled. However, unlike C preprocessor macros, the macros are Lisp functions and so can exploit the full power of Lisp. </p><p>Further, because Lisp code has the same structure as lists, macros can be built with any of the list-processing functions in the language. In short, anything that Lisp can do to a data structure, Lisp macros can do to code. In contrast, in most other languages, the parser's output is purely internal to the language implementation and cannot be manipulated by the programmer. </p><p>This feature makes it easy to develop <i>efficient</i> languages within languages. For example, the Common Lisp Object System can be implemented cleanly as a language extension using macros. This means that if an application needs a different inheritance mechanism, it can use a different object system. This is in stark contrast to most other languages; for example, Java does not support multiple inheritance and there is no reasonable way to add it. </p><p>In simplistic Lisp implementations, this list structure is directly <a href="/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreted</a> to run the program; a function is literally a piece of list structure which is traversed by the interpreter in executing it. However, most substantial Lisp systems also include a compiler. The compiler translates list structure into machine code or <a href="/wiki/Bytecode" title="Bytecode">bytecode</a> for execution. This code can run as fast as code compiled in conventional languages such as C. </p><p>Macros expand before the compilation step, and thus offer some interesting options. If a program needs a precomputed table, then a macro might create the table at compile time, so the compiler need only output the table and need not call code to create the table at run time. Some Lisp implementations even have a mechanism, <code>eval-when</code>, that allows code to be present during compile time (when a macro would need it), but not present in the emitted module.<sup id="cite_ref-0iFgm_70-0" class="reference"><a href="#cite_note-0iFgm-70"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Evaluation_and_the_read–eval–print_loop"><span id="Evaluation_and_the_read.E2.80.93eval.E2.80.93print_loop"></span>Evaluation and the read–eval–print loop</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=23" title="Edit section: Evaluation and the read–eval–print loop"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lisp languages are often used with an interactive <a href="/wiki/Command_line" class="mw-redirect" title="Command line">command line</a>, which may be combined with an <a href="/wiki/Integrated_development_environment" title="Integrated development environment">integrated development environment</a> (IDE). The user types in expressions at the command line, or directs the IDE to transmit them to the Lisp system. Lisp <i>reads</i> the entered expressions, <i>evaluates</i> them, and <i>prints</i> the result. For this reason, the Lisp command line is called a <i><a href="/wiki/Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">read–eval–print loop</a></i> (<a href="/wiki/REPL" class="mw-redirect" title="REPL">REPL</a>). </p><p>The basic operation of the REPL is as follows. This is a simplistic description which omits many elements of a real Lisp, such as quoting and macros. </p><p>The <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">read</span></code> function accepts textual S-expressions as input, and parses them into an internal data structure. For instance, if you type the text <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nb">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span></code> at the prompt, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">read</span></code> translates this into a linked list with three elements: the symbol <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">+</span></code>, the number 1, and the number 2. It so happens that this list is also a valid piece of Lisp code; that is, it can be evaluated. This is because the car of the list names a function—the addition operation. </p><p>A <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">foo</span></code> will be read as a single symbol. <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">123</span></code> will be read as the number one hundred and twenty-three. <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="s">"123"</span></code> will be read as the string "123". </p><p>The <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">eval</span></code> function evaluates the data, returning zero or more other Lisp data as a result. Evaluation does not have to mean interpretation; some Lisp systems compile every expression to native machine code. It is simple, however, to describe evaluation as interpretation: To evaluate a list whose car names a function, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">eval</span></code> first evaluates each of the arguments given in its cdr, then applies the function to the arguments. In this case, the function is addition, and applying it to the argument list <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span></code> yields the answer <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">3</span></code>. This is the result of the evaluation. </p><p>The symbol <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">foo</span></code> evaluates to the value of the symbol foo. Data like the string "123" evaluates to the same string. The list <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="k">quote</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="mi">3</span><span class="p">))</span></code> evaluates to the list (1 2 3). </p><p>It is the job of the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">print</span></code> function to represent output to the user. For a simple result such as <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="mi">3</span></code> this is trivial. An expression which evaluated to a piece of list structure would require that <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">print</span></code> traverse the list and print it out as an S-expression. </p><p>To implement a Lisp REPL, it is necessary only to implement these three functions and an infinite-loop function. (Naturally, the implementation of <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">eval</span></code> will be complex, since it must also implement all special operators like <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="k">if</span></code> or <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="k">lambda</span></code>.) This done, a basic REPL is one line of code: <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="nb">loop</span><span class="w"> </span><span class="p">(</span><span class="nb">print</span><span class="w"> </span><span class="p">(</span><span class="nb">eval</span><span class="w"> </span><span class="p">(</span><span class="nb">read</span><span class="p">))))</span></code>. </p><p>The Lisp REPL typically also provides input editing, an input history, error handling and an interface to the debugger. </p><p>Lisp is usually evaluated <a href="/wiki/Eager_evaluation" class="mw-redirect" title="Eager evaluation">eagerly</a>. In <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a>, arguments are evaluated in <a href="/wiki/Applicative_order" class="mw-redirect" title="Applicative order">applicative order</a> ('leftmost innermost'), while in <a href="/wiki/Scheme_programming_language" class="mw-redirect" title="Scheme programming language">Scheme</a> order of arguments is undefined, leaving room for optimization by a compiler. </p> <div class="mw-heading mw-heading3"><h3 id="Control_structures">Control structures</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=24" title="Edit section: Control structures"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lisp originally had very few control structures, but many more were added during the language's evolution. (Lisp's original conditional operator, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">cond</span></code>, is the precursor to later <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">if-then-else</span></code> structures.) </p><p>Programmers in the Scheme dialect often express loops using <a href="/wiki/Tail_recursion" class="mw-redirect" title="Tail recursion">tail recursion</a>. Scheme's commonality in academic computer science has led some students to believe that tail recursion is the only, or the most common, way to write iterations in Lisp, but this is incorrect. All oft-seen Lisp dialects have imperative-style iteration constructs, from Scheme's <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">do</span></code> loop to <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a>'s complex <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">loop</span></code> expressions. Moreover, the key issue that makes this an objective rather than subjective matter is that Scheme makes specific requirements for the handling of <a href="/wiki/Tail_call" title="Tail call">tail calls</a>, and thus the reason that the use of tail recursion is generally encouraged for Scheme is that the practice is expressly supported by the language definition. By contrast, ANSI Common Lisp does not require<sup id="cite_ref-lGnFp_71-0" class="reference"><a href="#cite_note-lGnFp-71"><span class="cite-bracket">[</span>71<span class="cite-bracket">]</span></a></sup> the optimization commonly termed a tail call elimination. Thus, the fact that tail recursive style as a casual replacement for the use of more traditional <a href="/wiki/Iteration" title="Iteration">iteration</a> constructs (such as <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">do</span></code>, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">dolist</span></code> or <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">loop</span></code>) is discouraged<sup id="cite_ref-VY38C_72-0" class="reference"><a href="#cite_note-VY38C-72"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup> in Common Lisp is not just a matter of stylistic preference, but potentially one of efficiency (since an apparent tail call in Common Lisp may not compile as a simple <a href="/wiki/Branch_(computer_science)" title="Branch (computer science)">jump</a>) and program correctness (since tail recursion may increase stack use in Common Lisp, risking <a href="/wiki/Stack_overflow" title="Stack overflow">stack overflow</a>). </p><p>Some Lisp control structures are <i>special operators</i>, equivalent to other languages' syntactic keywords. Expressions using these operators have the same surface appearance as function calls, but differ in that the arguments are not necessarily evaluated—or, in the case of an iteration expression, may be evaluated more than once. </p><p>In contrast to most other major programming languages, Lisp allows implementing control structures using the language. Several control structures are implemented as Lisp macros, and can even be macro-expanded by the programmer who wants to know how they work. </p><p>Both Common Lisp and Scheme have operators for non-local control flow. The differences in these operators are some of the deepest differences between the two dialects. Scheme supports <i>re-entrant <a href="/wiki/Continuation" title="Continuation">continuations</a></i> using the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">call/cc</span></code> procedure, which allows a program to save (and later restore) a particular place in execution. Common Lisp does not support re-entrant continuations, but does support several ways of handling escape continuations. </p><p>Often, the same algorithm can be expressed in Lisp in either an imperative or a functional style. As noted above, Scheme tends to favor the functional style, using tail recursion and continuations to express control flow. However, imperative style is still quite possible. The style preferred by many Common Lisp programmers may seem more familiar to programmers used to structured languages such as C, while that preferred by Schemers more closely resembles pure-functional languages such as <a href="/wiki/Haskell" title="Haskell">Haskell</a>. </p><p>Because of Lisp's early heritage in list processing, it has a wide array of higher-order functions relating to iteration over sequences. In many cases where an explicit loop would be needed in other languages (like a <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nv">for</span></code> loop in C) in Lisp the same task can be accomplished with a higher-order function. (The same is true of many functional programming languages.) </p><p>A good example is a function which in Scheme is called <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">map</span></code> and in Common Lisp is called <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">mapcar</span></code>. Given a function and one or more lists, <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">mapcar</span></code> applies the function successively to the lists' elements in order, collecting the results in a new list: </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="p">(</span><span class="nb">mapcar</span><span class="w"> </span><span class="nf">#'</span><span class="nb">+</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="mi">5</span><span class="p">)</span><span class="w"> </span><span class="o">'</span><span class="p">(</span><span class="mi">10</span><span class="w"> </span><span class="mi">20</span><span class="w"> </span><span class="mi">30</span><span class="w"> </span><span class="mi">40</span><span class="w"> </span><span class="mi">50</span><span class="p">))</span> </pre></div> <p>This applies the <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">+</span></code> function to each corresponding pair of list elements, yielding the result <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="p">(</span><span class="mi">11</span><span class="w"> </span><span class="mi">22</span><span class="w"> </span><span class="mi">33</span><span class="w"> </span><span class="mi">44</span><span class="w"> </span><span class="mi">55</span><span class="p">)</span></code>. </p> <div class="mw-heading mw-heading2"><h2 id="Examples">Examples</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=25" title="Edit section: Examples"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Here are examples of Common Lisp code. </p><p>The basic "<a href="/wiki/Hello,_World!" class="mw-redirect" title="Hello, World!">Hello, World!</a>" program: </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="nb">print</span><span class="w"> </span><span class="s">"Hello, World!"</span><span class="p">)</span> </pre></div> <p>Lisp syntax lends itself naturally to recursion. Mathematical problems such as the enumeration of recursively defined sets are simple to express in this notation. For example, to evaluate a number's <a href="/wiki/Factorial" title="Factorial">factorial</a>: </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="nb">defun</span><span class="w"> </span><span class="nv">factorial</span><span class="w"> </span><span class="p">(</span><span class="nv">n</span><span class="p">)</span> <span class="w"> </span><span class="p">(</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nb">zerop</span><span class="w"> </span><span class="nv">n</span><span class="p">)</span><span class="w"> </span><span class="mi">1</span> <span class="w"> </span><span class="p">(</span><span class="nb">*</span><span class="w"> </span><span class="nv">n</span><span class="w"> </span><span class="p">(</span><span class="nv">factorial</span><span class="w"> </span><span class="p">(</span><span class="nb">1-</span><span class="w"> </span><span class="nv">n</span><span class="p">)))))</span> </pre></div> <p>An alternative implementation takes less stack space than the previous version if the underlying Lisp system optimizes <a href="/wiki/Tail_recursion" class="mw-redirect" title="Tail recursion">tail recursion</a>: </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="nb">defun</span><span class="w"> </span><span class="nv">factorial</span><span class="w"> </span><span class="p">(</span><span class="nv">n</span><span class="w"> </span><span class="k">&optional</span><span class="w"> </span><span class="p">(</span><span class="nv">acc</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span> <span class="w"> </span><span class="p">(</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nb">zerop</span><span class="w"> </span><span class="nv">n</span><span class="p">)</span><span class="w"> </span><span class="nv">acc</span> <span class="w"> </span><span class="p">(</span><span class="nv">factorial</span><span class="w"> </span><span class="p">(</span><span class="nb">1-</span><span class="w"> </span><span class="nv">n</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nb">*</span><span class="w"> </span><span class="nv">acc</span><span class="w"> </span><span class="nv">n</span><span class="p">))))</span> </pre></div> <p>Contrast the examples above with an iterative version which uses <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a>'s <code class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><span class="nb">loop</span></code> macro: </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="nb">defun</span><span class="w"> </span><span class="nv">factorial</span><span class="w"> </span><span class="p">(</span><span class="nv">n</span><span class="p">)</span> <span class="w"> </span><span class="p">(</span><span class="nb">loop</span><span class="w"> </span><span class="nv">for</span><span class="w"> </span><span class="nv">i</span><span class="w"> </span><span class="nv">from</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="nv">to</span><span class="w"> </span><span class="nv">n</span> <span class="w"> </span><span class="nv">for</span><span class="w"> </span><span class="nv">fac</span><span class="w"> </span><span class="nb">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="nv">then</span><span class="w"> </span><span class="p">(</span><span class="nb">*</span><span class="w"> </span><span class="nv">fac</span><span class="w"> </span><span class="nv">i</span><span class="p">)</span> <span class="w"> </span><span class="nv">finally</span><span class="w"> </span><span class="p">(</span><span class="nb">return</span><span class="w"> </span><span class="nv">fac</span><span class="p">)))</span> </pre></div> <p>The following function reverses a list. (Lisp's built-in <i>reverse</i> function does the same thing.) </p> <div class="mw-highlight mw-highlight-lang-lisp mw-content-ltr" dir="ltr"><pre><span></span><span class="p">(</span><span class="nb">defun</span><span class="w"> </span><span class="nv">-reverse</span><span class="w"> </span><span class="p">(</span><span class="nb">list</span><span class="p">)</span> <span class="w"> </span><span class="p">(</span><span class="k">let</span><span class="w"> </span><span class="p">((</span><span class="nv">return-value</span><span class="p">))</span> <span class="w"> </span><span class="p">(</span><span class="nb">dolist</span><span class="w"> </span><span class="p">(</span><span class="nv">e</span><span class="w"> </span><span class="nb">list</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nb">push</span><span class="w"> </span><span class="nv">e</span><span class="w"> </span><span class="nv">return-value</span><span class="p">))</span> <span class="w"> </span><span class="nv">return-value</span><span class="p">))</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="Object_systems">Object systems</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=26" title="Edit section: Object systems"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Various object systems and models have been built on top of, alongside, or into Lisp, including </p> <ul><li>The <a href="/wiki/Common_Lisp_Object_System" title="Common Lisp Object System">Common Lisp Object System</a>, CLOS, is an integral part of ANSI Common Lisp. CLOS descended from New Flavors and CommonLOOPS. ANSI Common Lisp was the first standardized object-oriented programming language (1994, ANSI X3J13).</li> <li>ObjectLisp<sup id="cite_ref-NRrCu_73-0" class="reference"><a href="#cite_note-NRrCu-73"><span class="cite-bracket">[</span>73<span class="cite-bracket">]</span></a></sup> or <a href="/wiki/Object_Lisp" title="Object Lisp">Object Lisp</a>, used by <a href="/wiki/Lisp_Machines_Incorporated" class="mw-redirect" title="Lisp Machines Incorporated">Lisp Machines Incorporated</a> and early versions of Macintosh Common Lisp</li> <li>LOOPS (Lisp Object-Oriented Programming System) and the later <a href="/wiki/CommonLoops" title="CommonLoops">CommonLoops</a></li> <li><a href="/wiki/Flavors_(computer_science)" class="mw-redirect" title="Flavors (computer science)">Flavors</a>, built at <a href="/wiki/Massachusetts_Institute_of_Technology" title="Massachusetts Institute of Technology">MIT</a>, and its descendant New Flavors (developed by <a href="/wiki/Symbolics" title="Symbolics">Symbolics</a>).</li> <li>KR (short for Knowledge Representation), a <a href="/wiki/Constraint_satisfaction" title="Constraint satisfaction">constraints</a>-based object system developed to aid the writing of Garnet, a GUI library for <a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a>.</li> <li><a href="/wiki/Knowledge_Engineering_Environment" title="Knowledge Engineering Environment">Knowledge Engineering Environment</a> (KEE) used an object system named UNITS and integrated it with an <a href="/wiki/Inference_engine" title="Inference engine">inference engine</a><sup id="cite_ref-YxD5o_74-0" class="reference"><a href="#cite_note-YxD5o-74"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup> and a <a href="/wiki/Reason_maintenance" title="Reason maintenance">truth maintenance</a> system (ATMS).</li></ul> <div class="mw-heading mw-heading2"><h2 id="Operating_systems">Operating systems</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=27" title="Edit section: Operating systems"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Several <a href="/wiki/Operating_system" title="Operating system">operating systems</a>, including <a href="/wiki/Language-based_system" title="Language-based system">language-based systems</a>, are based on Lisp (use Lisp features, conventions, methods, data structures, etc.), or are written in Lisp,<sup id="cite_ref-75" class="reference"><a href="#cite_note-75"><span class="cite-bracket">[</span>75<span class="cite-bracket">]</span></a></sup> including: </p><p><a href="/wiki/Genera_(operating_system)" title="Genera (operating system)">Genera</a>, renamed Open Genera,<sup id="cite_ref-76" class="reference"><a href="#cite_note-76"><span class="cite-bracket">[</span>76<span class="cite-bracket">]</span></a></sup> by <a href="/wiki/Symbolics" title="Symbolics">Symbolics</a>; Medley, written in Interlisp, originally a family of graphical operating systems that ran on <a href="/wiki/Xerox" title="Xerox">Xerox</a>'s later <a href="/wiki/Xerox_Star" title="Xerox Star">Star</a> <a href="/wiki/Workstation" title="Workstation">workstations</a>;<sup id="cite_ref-77" class="reference"><a href="#cite_note-77"><span class="cite-bracket">[</span>77<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-78" class="reference"><a href="#cite_note-78"><span class="cite-bracket">[</span>78<span class="cite-bracket">]</span></a></sup> Mezzano;<sup id="cite_ref-79" class="reference"><a href="#cite_note-79"><span class="cite-bracket">[</span>79<span class="cite-bracket">]</span></a></sup> Interim;<sup id="cite_ref-80" class="reference"><a href="#cite_note-80"><span class="cite-bracket">[</span>80<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-81" class="reference"><a href="#cite_note-81"><span class="cite-bracket">[</span>81<span class="cite-bracket">]</span></a></sup> ChrysaLisp,<sup id="cite_ref-82" class="reference"><a href="#cite_note-82"><span class="cite-bracket">[</span>82<span class="cite-bracket">]</span></a></sup> by developers of Tao Systems' TAOS,<sup id="cite_ref-83" class="reference"><a href="#cite_note-83"><span class="cite-bracket">[</span>83<span class="cite-bracket">]</span></a></sup> and also Guix </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=28" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Self-modifying_code" title="Self-modifying code">Self-modifying code</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=29" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;"> <ol class="references"> <li id="cite_note-Julia-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-Julia_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160408134008/http://julia.readthedocs.org/en/latest/manual/introduction/">"Introduction"</a>. <i>The Julia Manual</i>. Read the Docs. Archived from <a rel="nofollow" class="external text" href="http://julia.readthedocs.org/en/latest/manual/introduction/">the original</a> on 2016-04-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-12-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Julia+Manual&rft.atitle=Introduction&rft_id=http%3A%2F%2Fjulia.readthedocs.org%2Fen%2Flatest%2Fmanual%2Fintroduction%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Wolfram-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-Wolfram_2-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.wolfram.com/language/faq/">"Wolfram Language Q&A"</a>. Wolfram Research<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-12-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Wolfram+Language+Q%26A&rft.pub=Wolfram+Research&rft_id=https%3A%2F%2Fwww.wolfram.com%2Flanguage%2Ffaq%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-6AN93-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-6AN93_3-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFEdwin_D._Reilly2003" class="citation book cs1">Edwin D. Reilly (2003). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=JTYPKxug49IC&pg=PA157"><i>Milestones in computer science and information technology</i></a>. Greenwood Publishing Group. pp. 156–157. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-57356-521-9" title="Special:BookSources/978-1-57356-521-9"><bdi>978-1-57356-521-9</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Milestones+in+computer+science+and+information+technology&rft.pages=156-157&rft.pub=Greenwood+Publishing+Group&rft.date=2003&rft.isbn=978-1-57356-521-9&rft.au=Edwin+D.+Reilly&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DJTYPKxug49IC%26pg%3DPA157&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-uOUnJ-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-uOUnJ_4-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20010727170154/http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-5.html">"SICP: Foreword"</a>. Archived from <a rel="nofollow" class="external text" href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-5.html">the original</a> on 2001-07-27. <q>Lisp is a survivor, having been in use for about a quarter of a century. Among the active programming languages only Fortran has had a longer life.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=SICP%3A+Foreword&rft_id=http%3A%2F%2Fmitpress.mit.edu%2Fsicp%2Ffull-text%2Fbook%2Fbook-Z-H-5.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-AfFRW-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-AfFRW_5-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20140403021353/http://www-formal.stanford.edu/jmc/history/lisp/node6.html#SECTION00060000000000000000">"Conclusions"</a>. Archived from <a rel="nofollow" class="external text" href="http://www-formal.stanford.edu/jmc/history/lisp/node6.html#SECTION00060000000000000000">the original</a> on 2014-04-03<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-06-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Conclusions&rft_id=http%3A%2F%2Fwww-formal.stanford.edu%2Fjmc%2Fhistory%2Flisp%2Fnode6.html%23SECTION00060000000000000000&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSteele1990" class="citation book cs1">Steele, Guy L. (1990). <i>Common Lisp: the language</i> (2nd ed.). Bedford, MA: Digital Press. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/1-55558-041-6" title="Special:BookSources/1-55558-041-6"><bdi>1-55558-041-6</bdi></a>. <a href="/wiki/OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/20631879">20631879</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Common+Lisp%3A+the+language&rft.place=Bedford%2C+MA&rft.edition=2nd&rft.pub=Digital+Press&rft.date=1990&rft_id=info%3Aoclcnum%2F20631879&rft.isbn=1-55558-041-6&rft.aulast=Steele&rft.aufirst=Guy+L.&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFFelleisenFindlerFlattKrishnamurthi2015" class="citation web cs1">Felleisen, Matthias; Findler, Robert; Flatt, Matthew; Krishnamurthi, Shriram; Barzilay, Eli; McCarthy, Jay; Tobin-Hochstadt, Sam (2015). <a rel="nofollow" class="external text" href="https://www2.ccs.neu.edu/racket/pubs/manifesto.pdf">"<span class="cs1-kern-left"></span>"The Racket Manifesto"<span class="cs1-kern-right"></span>"</a> <span class="cs1-format">(PDF)</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=%22The+Racket+Manifesto%22&rft.date=2015&rft.aulast=Felleisen&rft.aufirst=Matthias&rft.au=Findler%2C+Robert&rft.au=Flatt%2C+Matthew&rft.au=Krishnamurthi%2C+Shriram&rft.au=Barzilay%2C+Eli&rft.au=McCarthy%2C+Jay&rft.au=Tobin-Hochstadt%2C+Sam&rft_id=https%3A%2F%2Fwww2.ccs.neu.edu%2Fracket%2Fpubs%2Fmanifesto.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://clojure.org/reference/lisps">"Clojure - Differences with other Lisps"</a>. <i>clojure.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-10-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=clojure.org&rft.atitle=Clojure+-+Differences+with+other+Lisps&rft_id=https%3A%2F%2Fclojure.org%2Freference%2Flisps&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Steele,_Guy_Lewis,_Jr.;_Sussman,_Gerald_Jay-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-Steele,_Guy_Lewis,_Jr.;_Sussman,_Gerald_Jay_9-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSteeleSussman1978" class="citation web cs1">Steele, Guy Lewis; Sussman, Gerald Jay (May 1978). <a rel="nofollow" class="external text" href="https://dspace.mit.edu/handle/1721.1/6094/">"The Art of the Interpreter, or the Modularity Complex (Parts Zero, One, and Two), Part Zero, P. 4"</a>. MIT Libraries. <a href="/wiki/Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/1721.1%2F6094">1721.1/6094</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-08-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Art+of+the+Interpreter%2C+or+the+Modularity+Complex+%28Parts+Zero%2C+One%2C+and+Two%29%2C+Part+Zero%2C+P.+4&rft.pub=MIT+Libraries&rft.date=1978-05&rft_id=info%3Ahdl%2F1721.1%2F6094&rft.aulast=Steele&rft.aufirst=Guy+Lewis&rft.au=Sussman%2C+Gerald+Jay&rft_id=https%3A%2F%2Fdspace.mit.edu%2Fhandle%2F1721.1%2F6094%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHofstadter1999" class="citation cs2">Hofstadter, Douglas R. (1999) [1979], <a rel="nofollow" class="external text" href="https://books.google.com/books?id=izy9Tg6rmb8C"><i>Gödel, Escher, Bach: An Eternal Golden Braid (Twentieth Anniversary Edition)</i></a>, Basic Books, p. 292, <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-465-02656-7" title="Special:BookSources/0-465-02656-7"><bdi>0-465-02656-7</bdi></a>, <q>One of the most important and fascinating of all computer languages is LISP (standing for "List Processing"), which was invented by John McCarthy around the time Algol was invented. Subsequently, LISP has enjoyed great popularity with workers in Artificial Intelligence.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=G%C3%B6del%2C+Escher%2C+Bach%3A+An+Eternal+Golden+Braid+%28Twentieth+Anniversary+Edition%29&rft.pages=292&rft.pub=Basic+Books&rft.date=1999&rft.isbn=0-465-02656-7&rft.aulast=Hofstadter&rft.aufirst=Douglas+R.&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3Dizy9Tg6rmb8C&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Graham-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-Graham_11-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFPaul_Graham" class="citation web cs1">Paul Graham. <a rel="nofollow" class="external text" href="http://www.paulgraham.com/icad.html">"Revenge of the Nerds"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2013-03-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Revenge+of+the+Nerds&rft.au=Paul+Graham&rft_id=http%3A%2F%2Fwww.paulgraham.com%2Ficad.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-hC1qm-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-hC1qm_12-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFChisnall2011" class="citation book cs1">Chisnall, David (2011-01-12). <a rel="nofollow" class="external text" href="http://www.informit.com/articles/article.aspx?p=1671639&seqNum=3"><i>Influential Programming Languages, Part 4: Lisp</i></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Influential+Programming+Languages%2C+Part+4%3A+Lisp&rft.date=2011-01-12&rft.aulast=Chisnall&rft.aufirst=David&rft_id=http%3A%2F%2Fwww.informit.com%2Farticles%2Farticle.aspx%3Fp%3D1671639%26seqNum%3D3&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-ArtOfLisp-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-ArtOfLisp_13-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFJonesMaynardStewart2012" class="citation book cs1">Jones, Robin; Maynard, Clive; Stewart, Ian (December 6, 2012). <i>The Art of Lisp Programming</i>. Springer Science & Business Media. p. 2. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9781447117193" title="Special:BookSources/9781447117193"><bdi>9781447117193</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=The+Art+of+Lisp+Programming&rft.pages=2&rft.pub=Springer+Science+%26+Business+Media&rft.date=2012-12-06&rft.isbn=9781447117193&rft.aulast=Jones&rft.aufirst=Robin&rft.au=Maynard%2C+Clive&rft.au=Stewart%2C+Ian&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-McCarthy-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-McCarthy_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcCarthy" class="citation web cs1">McCarthy, John. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20131004215327/http://www-formal.stanford.edu/jmc/recursive.html">"Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I"</a>. Archived from <a rel="nofollow" class="external text" href="http://www-formal.stanford.edu/jmc/recursive.html">the original</a> on 2013-10-04<span class="reference-accessdate">. Retrieved <span class="nowrap">2006-10-13</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Recursive+Functions+of+Symbolic+Expressions+and+Their+Computation+by+Machine%2C+Part+I&rft.aulast=McCarthy&rft.aufirst=John&rft_id=http%3A%2F%2Fwww-formal.stanford.edu%2Fjmc%2Frecursive.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Smith-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-Smith_15-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSmith" class="citation book cs1">Smith, David Canfield. <a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/LISP/stanford/Smith-MLISP-AIM-84.pdf"><i>MLISP Users Manual</i></a> <span class="cs1-format">(PDF)</span><span class="reference-accessdate">. Retrieved <span class="nowrap">2006-10-13</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=MLISP+Users+Manual&rft.aulast=Smith&rft.aufirst=David+Canfield&rft_id=http%3A%2F%2Fwww.softwarepreservation.org%2Fprojects%2FLISP%2Fstanford%2FSmith-MLISP-AIM-84.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-4VwQq-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-4VwQq_16-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcCarthy1979" class="citation web cs1">McCarthy, John (12 February 1979). <a rel="nofollow" class="external text" href="http://jmc.stanford.edu/articles/lisp/lisp.pdf">"History of Lisp: Artificial Intelligence Laboratory"</a> <span class="cs1-format">(PDF)</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=History+of+Lisp%3A+Artificial+Intelligence+Laboratory&rft.date=1979-02-12&rft.aulast=McCarthy&rft.aufirst=John&rft_id=http%3A%2F%2Fjmc.stanford.edu%2Farticles%2Flisp%2Flisp.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-k4CmX-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-k4CmX_17-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFStoyan1984" class="citation conference cs1">Stoyan, Herbert (1984-08-06). <i>Early LISP history (1956–1959)</i>. LFP '84: Proceedings of the 1984 ACM Symposium on LISP and functional programming. <a href="/wiki/Association_for_Computing_Machinery" title="Association for Computing Machinery">Association for Computing Machinery</a>. p. 307. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F800055.802047">10.1145/800055.802047</a></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.btitle=Early+LISP+history+%281956%E2%80%931959%29&rft.pages=307&rft.pub=Association+for+Computing+Machinery&rft.date=1984-08-06&rft_id=info%3Adoi%2F10.1145%2F800055.802047&rft.aulast=Stoyan&rft.aufirst=Herbert&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-PREHISTORY-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-PREHISTORY_18-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcCarthy" class="citation web cs1">McCarthy, John. <a rel="nofollow" class="external text" href="http://www-formal.stanford.edu/jmc/history/lisp/node2.html">"LISP prehistory - Summer 1956 through Summer 1958"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2010-03-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LISP+prehistory+-+Summer+1956+through+Summer+1958&rft.aulast=McCarthy&rft.aufirst=John&rft_id=http%3A%2F%2Fwww-formal.stanford.edu%2Fjmc%2Fhistory%2Flisp%2Fnode2.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Levin-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-Levin_19-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHartLevin" class="citation web cs1">Hart, Tim; Levin, Mike. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201213195043/ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-039.pdf">"AI Memo 39-The new compiler"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-039.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2020-12-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-03-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=AI+Memo+39-The+new+compiler&rft.aulast=Hart&rft.aufirst=Tim&rft.au=Levin%2C+Mike&rft_id=ftp%3A%2F%2Fpublications.ai.mit.edu%2Fai-publications%2Fpdf%2FAIM-039.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcCarthyAbrahamsEdwardsHart1985" class="citation book cs1">McCarthy, John; Abrahams, Paul W.; Edwards, Daniel J.; Hart, Timothy P.; Levin, Michael I. (1985) [1962]. <a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf"><i>LISP 1.5 Programmer's Manual</i></a> <span class="cs1-format">(PDF)</span>. 15th printing (2nd ed.). p. Preface.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=LISP+1.5+Programmer%27s+Manual&rft.series=15th+printing&rft.pages=Preface&rft.edition=2nd&rft.date=1985&rft.aulast=McCarthy&rft.aufirst=John&rft.au=Abrahams%2C+Paul+W.&rft.au=Edwards%2C+Daniel+J.&rft.au=Hart%2C+Timothy+P.&rft.au=Levin%2C+Michael+I.&rft_id=http%3A%2F%2Fwww.softwarepreservation.org%2Fprojects%2FLISP%2Fbook%2FLISP%25201.5%2520Programmers%2520Manual.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-PYuEL-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-PYuEL_21-0">^</a></b></span> <span class="reference-text">The 36-bit word size of the <a href="/wiki/PDP-6" title="PDP-6">PDP-6</a>/<a href="/wiki/PDP-10" title="PDP-10">PDP-10</a> was influenced by the usefulness of having two Lisp 18-bit pointers in a single word. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFPeter_J._Hurley1990" class="citation newsgroup cs1">Peter J. Hurley (18 October 1990). <a rel="nofollow" class="external text" href="https://groups.google.com/group/alt.folklore.computers/browse_thread/thread/6e5602ce733d0ec/17597705ae289112">"The History of TOPS or Life in the Fast ACs"</a>. <a href="/wiki/Usenet_newsgroup" title="Usenet newsgroup">Newsgroup</a>: <a rel="nofollow" class="external text" href="news:alt.folklore.computers">alt.folklore.computers</a>. <a href="/wiki/Usenet_(identifier)" class="mw-redirect" title="Usenet (identifier)">Usenet:</a> <a rel="nofollow" class="external text" href="news:84950@tut.cis.ohio-state.edu">84950@tut.cis.ohio-state.edu</a>. <q>The PDP-6 project started in early 1963, as a 24-bit machine. It grew to 36 bits for LISP, a design goal.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+History+of+TOPS+or+Life+in+the+Fast+ACs&rft.pub=alt.folklore.computers&rft.date=1990-10-18&rft_id=news%3A84950%40tut.cis.ohio-state.edu%23id-name%3DUsenet%3A&rft.au=Peter+J.+Hurley&rft_id=http%3A%2F%2Fgroups.google.com%2Fgroup%2Falt.folklore.computers%2Fbrowse_thread%2Fthread%2F6e5602ce733d0ec%2F17597705ae289112&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSteeleGabriel1996" class="citation cs2">Steele, Guy L.; Gabriel, Richard P. (January 1996), Bergin, Thomas J.; Gibson, Richard G. (eds.), <a rel="nofollow" class="external text" href="http://dl.acm.org/doi/10.1145/234286.1057818">"The evolution of Lisp"</a>, <i>History of programming languages---II</i>, New York, NY, US: ACM, pp. 233–330, <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F234286.1057818">10.1145/234286.1057818</a>, <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-201-89502-5" title="Special:BookSources/978-0-201-89502-5"><bdi>978-0-201-89502-5</bdi></a><span class="reference-accessdate">, retrieved <span class="nowrap">2022-07-25</span></span></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=History+of+programming+languages---II&rft.atitle=The+evolution+of+Lisp&rft.pages=233-330&rft.date=1996-01&rft_id=info%3Adoi%2F10.1145%2F234286.1057818&rft.isbn=978-0-201-89502-5&rft.aulast=Steele&rft.aufirst=Guy+L.&rft.au=Gabriel%2C+Richard+P.&rft_id=http%3A%2F%2Fdl.acm.org%2Fdoi%2F10.1145%2F234286.1057818&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-jbyrI-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-jbyrI_23-0">^</a></b></span> <span class="reference-text">Common Lisp: <code>(defun f (x) x)</code><br />Scheme: <code>(define f (lambda (x) x))</code> or <code>(define (f x) x)</code></span> </li> <li id="cite_note-Fs6VP-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-Fs6VP_24-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcCarthyBraytonEdwardsFox1960" class="citation book cs1"><a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">McCarthy, J.</a>; Brayton, R.; Edwards, D.; <a href="/wiki/Phyllis_Fox" title="Phyllis Fox">Fox, P.</a>; <a href="/wiki/Louis_Hodes" title="Louis Hodes">Hodes, L.</a>; <a href="/wiki/David_Luckham" title="David Luckham">Luckham, D.</a>; Maling, K.; <a href="/wiki/David_Park_(computer_scientist)" title="David Park (computer scientist)">Park, D.</a>; <a href="/wiki/Steve_Russell_(computer_scientist)" title="Steve Russell (computer scientist)">Russell, S.</a> (March 1960). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100717111134/http://history.siam.org/sup/Fox_1960_LISP.pdf"><i>LISP I Programmers Manual</i></a> <span class="cs1-format">(PDF)</span>. Boston: Artificial Intelligence Group, <a href="/wiki/M.I.T._Computation_Center" class="mw-redirect" title="M.I.T. Computation Center">M.I.T. Computation Center</a> and Research Laboratory. Archived from <a rel="nofollow" class="external text" href="http://history.siam.org/sup/Fox_1960_LISP.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2010-07-17.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=LISP+I+Programmers+Manual&rft.place=Boston&rft.pub=Artificial+Intelligence+Group%2C+M.I.T.+Computation+Center+and+Research+Laboratory&rft.date=1960-03&rft.aulast=McCarthy&rft.aufirst=J.&rft.au=Brayton%2C+R.&rft.au=Edwards%2C+D.&rft.au=Fox%2C+P.&rft.au=Hodes%2C+L.&rft.au=Luckham%2C+D.&rft.au=Maling%2C+K.&rft.au=Park%2C+D.&rft.au=Russell%2C+S.&rft_id=http%3A%2F%2Fhistory.siam.org%2Fsup%2FFox_1960_LISP.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span> Accessed May 11, 2010.</span> </li> <li id="cite_note-1.5_manual-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-1.5_manual_25-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcCarthyAbrahamsEdwardsHart1985" class="citation book cs1">McCarthy, John; Abrahams, Paul W.; Edwards, Daniel J.; Hart, Timothy P.; Levin, Michael I. (1985) [1962]. <a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf"><i>LISP 1.5 Programmer's Manual</i></a> <span class="cs1-format">(PDF)</span> (2nd ed.). <a href="/wiki/MIT_Press" title="MIT Press">MIT Press</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-262-13011-4" title="Special:BookSources/0-262-13011-4"><bdi>0-262-13011-4</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=LISP+1.5+Programmer%27s+Manual&rft.edition=2nd&rft.pub=MIT+Press&rft.date=1985&rft.isbn=0-262-13011-4&rft.aulast=McCarthy&rft.aufirst=John&rft.au=Abrahams%2C+Paul+W.&rft.au=Edwards%2C+Daniel+J.&rft.au=Hart%2C+Timothy+P.&rft.au=Levin%2C+Michael+I.&rft_id=http%3A%2F%2Fwww.softwarepreservation.org%2Fprojects%2FLISP%2Fbook%2FLISP%25201.5%2520Programmers%2520Manual.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-7q5x9-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-7q5x9_26-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFQuamDiffle" class="citation book cs1">Quam, Lynn H.; Diffle, Whitfield. <a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/LISP/stanford/SAILON-28.6.pdf"><i>Stanford LISP 1.6 Manual</i></a> <span class="cs1-format">(PDF)</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Stanford+LISP+1.6+Manual&rft.aulast=Quam&rft.aufirst=Lynn+H.&rft.au=Diffle%2C+Whitfield&rft_id=http%3A%2F%2Fwww.softwarepreservation.org%2Fprojects%2FLISP%2Fstanford%2FSAILON-28.6.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-UNDMs-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-UNDMs_27-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20071214064433/http://zane.brouhaha.com/~healyzh/doc/lisp.doc.txt">"Maclisp Reference Manual"</a>. March 3, 1979. Archived from <a rel="nofollow" class="external text" href="http://zane.brouhaha.com/~healyzh/doc/lisp.doc.txt">the original</a> on 2007-12-14.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Maclisp+Reference+Manual&rft.date=1979-03-03&rft_id=http%3A%2F%2Fzane.brouhaha.com%2F~healyzh%2Fdoc%2Flisp.doc.txt&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-5CtB3-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-5CtB3_28-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFTeitelman1974" class="citation book cs1">Teitelman, Warren (1974). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20060602134835/http://www.bitsavers.org/pdf/xerox/interlisp/1974_InterlispRefMan.pdf"><i>InterLisp Reference Manual</i></a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://www.bitsavers.org/pdf/xerox/interlisp/1974_InterlispRefMan.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2006-06-02<span class="reference-accessdate">. Retrieved <span class="nowrap">2006-08-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=InterLisp+Reference+Manual&rft.date=1974&rft.aulast=Teitelman&rft.aufirst=Warren&rft_id=http%3A%2F%2Fwww.bitsavers.org%2Fpdf%2Fxerox%2Finterlisp%2F1974_InterlispRefMan.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-pq98z-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-pq98z_29-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://hal.archives-ouvertes.fr/file/index/docid/70041/filename/RT-0126.pdf">Outils de generation d'interfaces : etat de l'art et classification by H. El Mrabet</a></span> </li> <li id="cite_note-dp6Mp-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-dp6Mp_30-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGerald_Jay_SussmanGuy_Lewis_Steele_Jr.1975" class="citation web cs1">Gerald Jay Sussman & Guy Lewis Steele Jr. (December 1975). <a rel="nofollow" class="external text" href="https://dspace.mit.edu/bitstream/handle/1721.1/5794/AIM-349.pdf">"Scheme: An Interpreter for Extended Lambda Calculus"</a> <span class="cs1-format">(PDF)</span>. <i><a href="/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory" title="MIT Computer Science and Artificial Intelligence Laboratory">MIT AI Lab</a></i>. AIM-349<span class="reference-accessdate">. Retrieved <span class="nowrap">23 December</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=MIT+AI+Lab&rft.atitle=Scheme%3A+An+Interpreter+for+Extended+Lambda+Calculus&rft.date=1975-12&rft.au=Gerald+Jay+Sussman&rft.au=Guy+Lewis+Steele+Jr.&rft_id=https%3A%2F%2Fdspace.mit.edu%2Fbitstream%2Fhandle%2F1721.1%2F5794%2FAIM-349.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Rb5BT-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-Rb5BT_31-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSteele1990" class="citation book cs1">Steele, Guy L. Jr. (1990). <a rel="nofollow" class="external text" href="https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node6.html">"Purpose"</a>. <i>Common Lisp the Language</i> (2nd ed.). Digital Press. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-13-152414-3" title="Special:BookSources/0-13-152414-3"><bdi>0-13-152414-3</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Purpose&rft.btitle=Common+Lisp+the+Language&rft.edition=2nd&rft.pub=Digital+Press&rft.date=1990&rft.isbn=0-13-152414-3&rft.aulast=Steele&rft.aufirst=Guy+L.+Jr.&rft_id=https%3A%2F%2Fwww.cs.cmu.edu%2FGroups%2FAI%2Fhtml%2Fcltl%2Fclm%2Fnode6.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Xvsoj-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-Xvsoj_32-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKantrowitzMargolin1996" class="citation web cs1">Kantrowitz, Mark; Margolin, Barry (20 February 1996). <a rel="nofollow" class="external text" href="https://www.cs.cmu.edu/Groups/AI/html/faqs/lang/lisp/part2/faq-doc-13.html">"History: Where did Lisp come from?"</a>. <i>FAQ: Lisp Frequently Asked Questions 2/7</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=FAQ%3A+Lisp+Frequently+Asked+Questions+2%2F7&rft.atitle=History%3A+Where+did+Lisp+come+from%3F&rft.date=1996-02-20&rft.aulast=Kantrowitz&rft.aufirst=Mark&rft.au=Margolin%2C+Barry&rft_id=https%3A%2F%2Fwww.cs.cmu.edu%2FGroups%2FAI%2Fhtml%2Ffaqs%2Flang%2Flisp%2Fpart2%2Ffaq-doc-13.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-E4h75-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-E4h75_33-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=22987">"ISO/IEC 13816:1997"</a>. Iso.org. 2007-10-01<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-11-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ISO%2FIEC+13816%3A1997&rft.pub=Iso.org&rft.date=2007-10-01&rft_id=http%3A%2F%2Fwww.iso.org%2Fiso%2Fiso_catalogue%2Fcatalogue_tc%2Fcatalogue_detail.htm%3Fcsnumber%3D22987&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-xECKU-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-xECKU_34-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44338">"ISO/IEC 13816:2007"</a>. Iso.org. 2013-10-30<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-11-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ISO%2FIEC+13816%3A2007&rft.pub=Iso.org&rft.date=2013-10-30&rft_id=http%3A%2F%2Fwww.iso.org%2Fiso%2Fiso_catalogue%2Fcatalogue_tc%2Fcatalogue_detail.htm%3Fcsnumber%3D44338&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-CAXAD-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-CAXAD_35-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.nhplace.com/kent/CL/x3j13-86-020.html">"X3J13 Charter"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=X3J13+Charter&rft_id=http%3A%2F%2Fwww.nhplace.com%2Fkent%2FCL%2Fx3j13-86-020.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-sKh98-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-sKh98_36-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20061004031130/http://wiki.alu.org/The_Road_To_Lisp_Survey">"The Road To Lisp Survey"</a>. Archived from <a rel="nofollow" class="external text" href="https://wiki.alu.org/The_Road_To_Lisp_Survey">the original</a> on 2006-10-04<span class="reference-accessdate">. Retrieved <span class="nowrap">2006-10-13</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Road+To+Lisp+Survey&rft_id=http%3A%2F%2Fwiki.alu.org%2FThe_Road_To_Lisp_Survey&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-nb7MB-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-nb7MB_37-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130603002452/http://www.faqs.org/docs/artu/ch14s05.html">"Trends for the Future"</a>. Faqs.org. Archived from <a rel="nofollow" class="external text" href="http://www.faqs.org/docs/artu/ch14s05.html">the original</a> on 2013-06-03<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-11-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Trends+for+the+Future&rft.pub=Faqs.org&rft_id=http%3A%2F%2Fwww.faqs.org%2Fdocs%2Fartu%2Fch14s05.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-sWbGt-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-sWbGt_38-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFWeinreb" class="citation web cs1">Weinreb, Daniel. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120421181340/http://common-lisp.net/~dlw/LispSurvey.html">"Common Lisp Implementations: A Survey"</a>. Archived from <a rel="nofollow" class="external text" href="http://common-lisp.net/~dlw/LispSurvey.html">the original</a> on 2012-04-21<span class="reference-accessdate">. Retrieved <span class="nowrap">4 April</span> 2012</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Common+Lisp+Implementations%3A+A+Survey&rft.aulast=Weinreb&rft.aufirst=Daniel&rft_id=http%3A%2F%2Fcommon-lisp.net%2F~dlw%2FLispSurvey.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://planet.lisp.org/">"Planet Lisp"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-10-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Planet+Lisp&rft_id=https%3A%2F%2Fplanet.lisp.org%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lispforum.com">"LispForum"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-10-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LispForum&rft_id=https%3A%2F%2Flispforum.com&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lispjobs.wordpress.com/">"Lispjobs"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-10-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Lispjobs&rft_id=https%3A%2F%2Flispjobs.wordpress.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.quicklisp.org">"Quicklisp"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-10-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Quicklisp&rft_id=https%3A%2F%2Fwww.quicklisp.org&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-Q9GcA-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-Q9GcA_43-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.lisp50.org/">"LISP50@OOPSLA"</a>. Lisp50.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-11-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LISP50%40OOPSLA&rft.pub=Lisp50.org&rft_id=http%3A%2F%2Fwww.lisp50.org%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-92GaL-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-92GaL_44-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.schemers.org/Documents/Standards/R5RS/">Documents: Standards: R5RS</a>. schemers.org (2012-01-11). Retrieved on 2013-07-17.</span> </li> <li id="cite_note-yVta1-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-yVta1_45-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20100917102705/http://cemerick.com/2009/03/24/why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program/">"Why MIT now uses python instead of scheme for its undergraduate CS program"</a>. <i>cemerick.com</i>. March 24, 2009. Archived from <a rel="nofollow" class="external text" href="http://cemerick.com/2009/03/24/why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program/">the original</a> on September 17, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">November 10,</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=cemerick.com&rft.atitle=Why+MIT+now+uses+python+instead+of+scheme+for+its+undergraduate+CS+program&rft.date=2009-03-24&rft_id=http%3A%2F%2Fcemerick.com%2F2009%2F03%2F24%2Fwhy-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-XOiAA-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-XOiAA_46-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBroder2008" class="citation news cs1">Broder, Evan (January 8, 2008). <a rel="nofollow" class="external text" href="http://mitadmissions.org/blogs/entry/the_end_of_an_era_1">"The End of an Era"</a>. <i>mitadmissions.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">November 10,</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=mitadmissions.org&rft.atitle=The+End+of+an+Era&rft.date=2008-01-08&rft.aulast=Broder&rft.aufirst=Evan&rft_id=http%3A%2F%2Fmitadmissions.org%2Fblogs%2Fentry%2Fthe_end_of_an_era_1&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-MITEECS-Python-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-MITEECS-Python_47-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.eecs.mit.edu/academics-admissions/undergraduate-programs">"MIT EECS Undergraduate Programs"</a>. <i>www.eecs.mit.edu</i>. MIT Electrical Engineering & Computer Science<span class="reference-accessdate">. Retrieved <span class="nowrap">31 December</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.eecs.mit.edu&rft.atitle=MIT+EECS+Undergraduate+Programs&rft_id=https%3A%2F%2Fwww.eecs.mit.edu%2Facademics-admissions%2Fundergraduate-programs&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-MITx-Phyton-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-MITx-Phyton_48-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.eecs.mit.edu/news-events/announcements/mitx-introductory-python-course-hits-12-million-enrollments">"MITx introductory Python course hits 1.2 million enrollments"</a>. <i>MIT EECS</i>. MIT Electrical Engineering & Computer Science<span class="reference-accessdate">. Retrieved <span class="nowrap">31 December</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=MIT+EECS&rft.atitle=MITx+introductory+Python+course+hits+1.2+million+enrollments&rft_id=https%3A%2F%2Fwww.eecs.mit.edu%2Fnews-events%2Fannouncements%2Fmitx-introductory-python-course-hits-12-million-enrollments&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-uMuJD-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-uMuJD_49-0">^</a></b></span> <span class="reference-text">Chapter 1.1.2, History, ANSI CL Standard</span> </li> <li id="cite_note-hEWIZ-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-hEWIZ_50-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="https://www.cliki.net/Clasp">[1]</a> Clasp is a Common Lisp implementation that interoperates with C++ and uses LLVM for <a href="/wiki/Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilation</a> (JIT) to native code.</span> </li> <li id="cite_note-vBfvI-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-vBfvI_51-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="https://common-lisp.net/project/armedbear/">[2]</a> "Armed Bear Common Lisp (ABCL) is a full implementation of the Common Lisp language featuring both an interpreter and a compiler, running in the JVM"</span> </li> <li id="cite_note-za6Q8-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-za6Q8_52-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="https://common-lisp.net/~dlw/LispSurvey.html">[3]</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180622083812/https://common-lisp.net/~dlw/LispSurvey.html">Archived</a> 2018-06-22 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a> Common Lisp Implementations: A Survey</span> </li> <li id="cite_note-QX6kG-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-QX6kG_53-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="https://www.cliki.net/Common+Lisp+implementation">[4]</a> Comparison of actively developed Common Lisp implementations</span> </li> <li id="cite_note-clojure-immutability-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-clojure-immutability_54-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.infoq.com/articles/in-depth-look-clojure-collections">An In-Depth Look at Clojure Collections</a>, Retrieved 2012-06-24</span> </li> <li id="cite_note-f6C82-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-f6C82_55-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://clojure.org/about/rationale">"Clojure rational"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">27 August</span> 2019</span>. <q>Clojure is a Lisp not constrained by backwards compatibility</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Clojure+rational&rft_id=https%3A%2F%2Fclojure.org%2Fabout%2Frationale&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-script-fu-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-script-fu_56-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.gimp.org/docs/script-fu-update.html">Script-fu In GIMP 2.4</a>, Retrieved 2009-10-29</span> </li> <li id="cite_note-librep-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-librep_57-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://sawfish.wikia.com/wiki/Librep">librep</a> at Sawfish Wikia, retrieved 2009-10-29</span> </li> <li id="cite_note-LQgpj-58"><span class="mw-cite-backlink"><b><a href="#cite_ref-LQgpj_58-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://standards.ieee.org/ieee/1178/1787/">"IEEE Scheme"</a>. <i>IEEE 1178-1990 - IEEE Standard for the Scheme Programming Language</i><span class="reference-accessdate">. Retrieved <span class="nowrap">27 August</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=IEEE+1178-1990+-+IEEE+Standard+for+the+Scheme+Programming+Language&rft.atitle=IEEE+Scheme&rft_id=https%3A%2F%2Fstandards.ieee.org%2Fieee%2F1178%2F1787%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-59">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFPaul_Graham2002" class="citation web cs1">Paul Graham (May 2002). <a rel="nofollow" class="external text" href="http://paulgraham.com/diff.html">"What Made Lisp Different"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=What+Made+Lisp+Different&rft.date=2002-05&rft.au=Paul+Graham&rft_id=http%3A%2F%2Fpaulgraham.com%2Fdiff.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-bUXap-60"><span class="mw-cite-backlink"><b><a href="#cite_ref-bUXap_60-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www-formal.stanford.edu/jmc/history/lisp/node2.html">"LISP prehistory - Summer 1956 through Summer 1958"</a>. <q>I invented conditional expressions in connection with a set of chess legal move routines I wrote in FORTRAN for the IBM 704 at M.I.T. during 1957–58 ... A paper defining conditional expressions and proposing their use in Algol was sent to the Communications of the ACM but was arbitrarily demoted to a letter to the editor, because it was very short.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LISP+prehistory+-+Summer+1956+through+Summer+1958.&rft_id=http%3A%2F%2Fwww-formal.stanford.edu%2Fjmc%2Fhistory%2Flisp%2Fnode2.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-4I08d-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-4I08d_61-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en">"Meaning of 'Object-Oriented Programming' According to Dr. Alan Kay"</a>. 2003-07-23. <q>I didn't understand the monster LISP idea of tangible metalanguage then, but got kind of close with ideas about extensible languages ... The second phase of this was to finally understand LISP and then using this understanding to make much nicer and smaller and more powerful and more late bound understructures ... OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Meaning+of+%27Object-Oriented+Programming%27+According+to+Dr.+Alan+Kay&rft.date=2003-07-23&rft_id=http%3A%2F%2Fuserpage.fu-berlin.de%2F~ram%2Fpub%2Fpub_jf47ht81Ht%2Fdoc_kay_oop_en&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-dpvwj-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-dpvwj_62-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLiebermanHewitt1983" class="citation cs2">Lieberman, Henry; Hewitt, Carl (June 1983), <a rel="nofollow" class="external text" href="http://web.media.mit.edu/~lieber/Lieberary/GC/Realtime/Realtime.html">"A Real-Time Garbage Collector Based on the Lifetimes of Objects"</a>, <i>Communications of the ACM</i>, <b>26</b> (6): 419–429, <a href="/wiki/CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.8633">10.1.1.4.8633</a></span>, <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F358141.358147">10.1145/358141.358147</a>, <a href="/wiki/Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/1721.1%2F6335">1721.1/6335</a>, <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:14161480">14161480</a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Communications+of+the+ACM&rft.atitle=A+Real-Time+Garbage+Collector+Based+on+the+Lifetimes+of+Objects&rft.volume=26&rft.issue=6&rft.pages=419-429&rft.date=1983-06&rft_id=info%3Ahdl%2F1721.1%2F6335&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A14161480%23id-name%3DS2CID&rft_id=https%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fsummary%3Fdoi%3D10.1.1.4.8633%23id-name%3DCiteSeerX&rft_id=info%3Adoi%2F10.1145%2F358141.358147&rft.aulast=Lieberman&rft.aufirst=Henry&rft.au=Hewitt%2C+Carl&rft_id=http%3A%2F%2Fweb.media.mit.edu%2F~lieber%2FLieberary%2FGC%2FRealtime%2FRealtime.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-v8uNE-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-v8uNE_63-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFEdsger_W._Dijkstra1972" class="citation cs2">Edsger W. Dijkstra (1972), <a rel="nofollow" class="external text" href="http://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html"><i>The Humble Programmer (EWD 340)</i></a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=The+Humble+Programmer+%28EWD+340%29&rft.date=1972&rft.au=Edsger+W.+Dijkstra&rft_id=http%3A%2F%2Fwww.cs.utexas.edu%2F~EWD%2Ftranscriptions%2FEWD03xx%2FEWD340.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span> (ACM Turing Award lecture).</span> </li> <li id="cite_note-chI3V-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-chI3V_64-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.linkedin.com/pulse/look-clojure-lisp-resurgence-todd-towles">"A Look at Clojure and the Lisp Resurgence"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=A+Look+at+Clojure+and+the+Lisp+Resurgence&rft_id=https%3A%2F%2Fwww.linkedin.com%2Fpulse%2Flook-clojure-lisp-resurgence-todd-towles&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-LEVIN2-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-LEVIN2_65-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.catb.org/~esr/jargon/html/L/LISP.html">"The Jargon File - Lisp"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2006-10-13</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Jargon+File+-+Lisp&rft_id=http%3A%2F%2Fwww.catb.org%2F~esr%2Fjargon%2Fhtml%2FL%2FLISP.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-SebestaLanguages-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-SebestaLanguages_66-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSebesta2012" class="citation book cs1">Sebesta, Robert W. (2012). "<span class="cs1-kern-left"></span>"2.4 Functional Programming: LISP";"6.9 List Types";"15.4 The First Functional Programming Language: LISP"<span class="cs1-kern-right"></span>". <a rel="nofollow" class="external text" href="https://www.pearson.com/us/higher-education/product/Sebesta-Concepts-of-Programming-Languages-10th-Edition/9780131395312.html"><i>Concepts of Programming Languages</i></a> <span class="cs1-format">(print)</span> (10th ed.). Boston, MA, US: Addison-Wesley. pp. 47–52, 281–284, 677–680. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-13-139531-2" title="Special:BookSources/978-0-13-139531-2"><bdi>978-0-13-139531-2</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=%222.4+Functional+Programming%3A+LISP%22%3B%226.9+List+Types%22%3B%2215.4+The+First+Functional+Programming+Language%3A+LISP%22&rft.btitle=Concepts+of+Programming+Languages&rft.place=Boston%2C+MA%2C+US&rft.pages=47-52%2C+281-284%2C+677-680&rft.edition=10th&rft.pub=Addison-Wesley&rft.date=2012&rft.isbn=978-0-13-139531-2&rft.aulast=Sebesta&rft.aufirst=Robert+W.&rft_id=https%3A%2F%2Fwww.pearson.com%2Fus%2Fhigher-education%2Fproduct%2FSebesta-Concepts-of-Programming-Languages-10th-Edition%2F9780131395312.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-r3sL3-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-r3sL3_67-0">^</a></b></span> <span class="reference-text">NB: a so-called "dotted list" is only one kind of "improper list". The other kind is the "circular list" where the cons cells form a loop. Typically this is represented using #n=(...) to represent the target cons cell that will have multiple references, and #n# is used to refer to this cons. For instance, (#1=(a b) . #1#) would normally be printed as ((a b) a b) (without circular structure printing enabled), but makes the reuse of the cons cell clear. #1=(a . #1#) cannot normally be printed as it is circular, although (a...) is sometimes displayed, the CDR of the cons cell defined by #1= is itself.</span> </li> <li id="cite_note-cTQAG-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-cTQAG_68-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.cs.washington.edu/education/courses/cse341/04wi/lectures/14-scheme-quote.html">"CSE 341: Scheme: Quote, Quasiquote, and Metaprogramming"</a>. Cs.washington.edu. 1999-02-22<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-11-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=CSE+341%3A+Scheme%3A+Quote%2C+Quasiquote%2C+and+Metaprogramming&rft.pub=Cs.washington.edu&rft.date=1999-02-22&rft_id=http%3A%2F%2Fwww.cs.washington.edu%2Feducation%2Fcourses%2Fcse341%2F04wi%2Flectures%2F14-scheme-quote.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-waVLs-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-waVLs_69-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://repository.readscheme.org/ftp/papers/pepm99/bawden.pdf">Quasiquotation in Lisp</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130603114956/http://repository.readscheme.org/ftp/papers/pepm99/bawden.pdf">Archived</a> 2013-06-03 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, Alan Bawden</span> </li> <li id="cite_note-0iFgm-70"><span class="mw-cite-backlink"><b><a href="#cite_ref-0iFgm_70-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.gnu.org/software/emacs/manual/html_node/cl/Time-of-Evaluation.html">Time of Evaluation - Common Lisp Extensions</a>. Gnu.org. Retrieved on 2013-07-17.</span> </li> <li id="cite_note-lGnFp-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-lGnFp_71-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.lispworks.com/documentation/HyperSpec/Body/03_bbc.htm">3.2.2.3 Semantic Constraints</a> in <a rel="nofollow" class="external text" href="http://www.lispworks.com/documentation/HyperSpec/Front/index.htm"><i>Common Lisp HyperSpec</i></a></span> </li> <li id="cite_note-VY38C-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-VY38C_72-0">^</a></b></span> <span class="reference-text">4.3. Control Abstraction (Recursion vs. Iteration) in <a rel="nofollow" class="external text" href="http://www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf">Tutorial on Good Lisp Programming Style</a> by <a href="/wiki/Kent_Pitman" title="Kent Pitman">Kent Pitman</a> and <a href="/wiki/Peter_Norvig" title="Peter Norvig">Peter Norvig</a>, August, 1993.</span> </li> <li id="cite_note-NRrCu-73"><span class="mw-cite-backlink"><b><a href="#cite_ref-NRrCu_73-0">^</a></b></span> <span class="reference-text">pg 17 of Bobrow 1986</span> </li> <li id="cite_note-YxD5o-74"><span class="mw-cite-backlink"><b><a href="#cite_ref-YxD5o_74-0">^</a></b></span> <span class="reference-text">Veitch, p 108, 1988</span> </li> <li id="cite_note-75"><span class="mw-cite-backlink"><b><a href="#cite_ref-75">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFProven2022" class="citation news cs1">Proven, Liam (29 March 2022). <a rel="nofollow" class="external text" href="https://www.theregister.com/2022/03/29/non_c_operating_systems/">"The wild world of non-C operating systems"</a>. <i><a href="/wiki/The_Register" title="The Register">The Register</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-04-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=The+Register&rft.atitle=The+wild+world+of+non-C+operating+systems&rft.date=2022-03-29&rft.aulast=Proven&rft.aufirst=Liam&rft_id=https%3A%2F%2Fwww.theregister.com%2F2022%2F03%2F29%2Fnon_c_operating_systems%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-76"><span class="mw-cite-backlink"><b><a href="#cite_ref-76">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://archive.org/details/OpenGenera">"Symbolics Open Genera 2.0"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a> Internet Archive</i>. 7 January 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-02-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub+Internet+Archive&rft.atitle=Symbolics+Open+Genera+2.0&rft.date=2020-01-07&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2FOpenGenera&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-77"><span class="mw-cite-backlink"><b><a href="#cite_ref-77">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://interlisp.org/">"Interlisp.org Project"</a>. <i>Interlisp.org</i>. 15 March 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-02-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Interlisp.org&rft.atitle=Interlisp.org+Project&rft.date=2022-03-15&rft_id=https%3A%2F%2Finterlisp.org%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-78"><span class="mw-cite-backlink"><b><a href="#cite_ref-78">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/Interlisp/medley">"Interlisp Medley"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>. March 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-02-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Interlisp+Medley&rft.date=2022-03&rft_id=https%3A%2F%2Fgithub.com%2FInterlisp%2Fmedley&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-79"><span class="mw-cite-backlink"><b><a href="#cite_ref-79">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFfroggey2021" class="citation web cs1">froggey (1 August 2021). <a rel="nofollow" class="external text" href="https://github.com/froggey/Mezzano">"Mezzano"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-02-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Mezzano&rft.date=2021-08-01&rft.au=froggey&rft_id=https%3A%2F%2Fgithub.com%2Ffroggey%2FMezzano&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-80"><span class="mw-cite-backlink"><b><a href="#cite_ref-80">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHartmann2015" class="citation web cs1">Hartmann, Lukas F. (10 September 2015). <a rel="nofollow" class="external text" href="http://interim-os.com/">"Interim"</a>. <i>Interim-os</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-02-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Interim-os&rft.atitle=Interim&rft.date=2015-09-10&rft.aulast=Hartmann&rft.aufirst=Lukas+F.&rft_id=http%3A%2F%2Finterim-os.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-81"><span class="mw-cite-backlink"><b><a href="#cite_ref-81">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHartmann2021" class="citation web cs1">Hartmann, Lukas F. (11 June 2021). <a rel="nofollow" class="external text" href="https://github.com/mntmn/interim">"Interim"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-02-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Interim&rft.date=2021-06-11&rft.aulast=Hartmann&rft.aufirst=Lukas+F.&rft_id=https%3A%2F%2Fgithub.com%2Fmntmn%2Finterim&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-82"><span class="mw-cite-backlink"><b><a href="#cite_ref-82">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHinsley2022" class="citation web cs1">Hinsley, Chris (23 February 2022). <a rel="nofollow" class="external text" href="https://github.com/vygr/ChrysaLisp">"ChrysaLisp"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-02-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=ChrysaLisp&rft.date=2022-02-23&rft.aulast=Hinsley&rft.aufirst=Chris&rft_id=https%3A%2F%2Fgithub.com%2Fvygr%2FChrysaLisp&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-83"><span class="mw-cite-backlink"><b><a href="#cite_ref-83">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSmith2013" class="citation web cs1">Smith, Tony (21 August 2013). <a rel="nofollow" class="external text" href="https://www.theregister.com/2013/08/21/unsung_heroes_dr_chris_shelton/?page=5">"UK micro pioneer Chris Shelton: The mind behind the Nascom 1"</a>. <i><a href="/wiki/The_Register" title="The Register">The Register</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-02-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=The+Register&rft.atitle=UK+micro+pioneer+Chris+Shelton%3A+The+mind+behind+the+Nascom+1&rft.date=2013-08-21&rft.aulast=Smith&rft.aufirst=Tony&rft_id=https%3A%2F%2Fwww.theregister.com%2F2013%2F08%2F21%2Funsung_heroes_dr_chris_shelton%2F%3Fpage%3D5&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=30" title="Edit section: Further reading"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239549316">.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}</style><div class="refbegin" style=""> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMcCarthy1979" class="citation web cs1">McCarthy, John (1979-02-12). <a rel="nofollow" class="external text" href="http://www-formal.stanford.edu/jmc/history/lisp/node3.html">"The implementation of Lisp"</a>. <i>History of Lisp</i>. Stanford University<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-10-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=History+of+Lisp&rft.atitle=The+implementation+of+Lisp&rft.date=1979-02-12&rft.aulast=McCarthy&rft.aufirst=John&rft_id=http%3A%2F%2Fwww-formal.stanford.edu%2Fjmc%2Fhistory%2Flisp%2Fnode3.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSteele,_Jr.Richard_P._Gabriel1993" class="citation conference cs1">Steele, Jr., Guy L.; Richard P. Gabriel (1993). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20061012010042/http://www.dreamsongs.com/NewFiles/HOPL2-Uncut.pdf"><i>The evolution of Lisp</i></a> <span class="cs1-format">(PDF)</span>. The second ACM SIGPLAN conference on History of programming languages. New York, NY: ACM. pp. 231–270. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-89791-570-4" title="Special:BookSources/0-89791-570-4"><bdi>0-89791-570-4</bdi></a>. Archived from <a rel="nofollow" class="external text" href="http://www.dreamsongs.com/NewFiles/HOPL2-Uncut.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2006-10-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-10-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=conference&rft.btitle=The+evolution+of+Lisp&rft.place=New+York%2C+NY&rft.pages=231-270&rft.pub=ACM&rft.date=1993&rft.isbn=0-89791-570-4&rft.aulast=Steele%2C+Jr.&rft.aufirst=Guy+L.&rft.au=Richard+P.+Gabriel&rft_id=http%3A%2F%2Fwww.dreamsongs.com%2FNewFiles%2FHOPL2-Uncut.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVeitch1998" class="citation book cs1 cs1-prop-long-vol">Veitch, Jim (1998). "A history and description of CLOS". In Salus, Peter H. (ed.). <a rel="nofollow" class="external text" href="https://archive.org/details/handbookofprogra0000unse/page/107"><i>Handbook of programming languages</i></a>. Vol. IV, Functional and logic programming languages (1st ed.). Indianapolis, IN: Macmillan Technical Publishing. pp. <a rel="nofollow" class="external text" href="https://archive.org/details/handbookofprogra0000unse/page/107">107–158</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/1-57870-011-6" title="Special:BookSources/1-57870-011-6"><bdi>1-57870-011-6</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=A+history+and+description+of+CLOS&rft.btitle=Handbook+of+programming+languages&rft.place=Indianapolis%2C+IN&rft.pages=107-158&rft.edition=1st&rft.pub=Macmillan+Technical+Publishing&rft.date=1998&rft.isbn=1-57870-011-6&rft.aulast=Veitch&rft.aufirst=Jim&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fhandbookofprogra0000unse%2Fpage%2F107&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAbelsonSussmanSussman1996" class="citation book cs1"><a href="/wiki/Harold_Abelson" class="mw-redirect" title="Harold Abelson">Abelson, Harold</a>; <a href="/wiki/Gerald_Jay_Sussman" title="Gerald Jay Sussman">Sussman, Gerald Jay</a>; <a href="/wiki/Julie_Sussman" class="mw-redirect" title="Julie Sussman">Sussman, Julie</a> (1996). <i><a href="/wiki/Structure_and_Interpretation_of_Computer_Programs" title="Structure and Interpretation of Computer Programs">Structure and Interpretation of Computer Programs</a></i> (2nd ed.). MIT Press. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-262-01153-0" title="Special:BookSources/0-262-01153-0"><bdi>0-262-01153-0</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Structure+and+Interpretation+of+Computer+Programs&rft.edition=2nd&rft.pub=MIT+Press&rft.date=1996&rft.isbn=0-262-01153-0&rft.aulast=Abelson&rft.aufirst=Harold&rft.au=Sussman%2C+Gerald+Jay&rft.au=Sussman%2C+Julie&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></li> <li><a rel="nofollow" class="external text" href="https://www.gnu.org/gnu/rms-lisp.html">My Lisp Experiences and the Development of GNU Emacs</a>, <a href="/wiki/Transcription_(linguistics)" title="Transcription (linguistics)">transcript</a> of <a href="/wiki/Richard_Stallman" title="Richard Stallman">Richard Stallman</a>'s speech, 28 October 2002, at the <a href="/w/index.php?title=International_Lisp_Conference&action=edit&redlink=1" class="new" title="International Lisp Conference (page does not exist)">International Lisp Conference</a></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGraham2004" class="citation book cs1"><a href="/wiki/Paul_Graham_(computer_programmer)" class="mw-redirect" title="Paul Graham (computer programmer)">Graham, Paul</a> (2004). <i><a href="/wiki/Hackers_%26_Painters" title="Hackers & Painters">Hackers & Painters. Big Ideas from the Computer Age</a></i>. O'Reilly. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-596-00662-4" title="Special:BookSources/0-596-00662-4"><bdi>0-596-00662-4</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Hackers+%26+Painters.+Big+Ideas+from+the+Computer+Age&rft.pub=O%27Reilly&rft.date=2004&rft.isbn=0-596-00662-4&rft.aulast=Graham&rft.aufirst=Paul&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBerkeleyBobrow1964" class="citation book cs1"><a href="/wiki/Edmund_Berkeley" title="Edmund Berkeley">Berkeley, Edmund C.</a>; <a href="/wiki/Daniel_G._Bobrow" title="Daniel G. Bobrow">Bobrow, Daniel G.</a>, eds. (March 1964). <a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/LISP/book/III_LispBook_Apr66.pdf"><i>The Programming Language LISP: Its Operation and Applications</i></a> <span class="cs1-format">(PDF)</span>. Cambridge, Massachusetts: MIT Press.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=The+Programming+Language+LISP%3A+Its+Operation+and+Applications&rft.place=Cambridge%2C+Massachusetts&rft.pub=MIT+Press&rft.date=1964-03&rft_id=http%3A%2F%2Fwww.softwarepreservation.org%2Fprojects%2FLISP%2Fbook%2FIII_LispBook_Apr66.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span> <ul><li>Article largely based on the <i>LISP - A Simple Introduction</i> chapter: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBerkeley1964" class="citation journal cs1">Berkeley, Edmund C. (September 1964). <a rel="nofollow" class="external text" href="https://archive.org/details/bitsavers_computersA_6908895">"The Programming Language Lisp: An Introduction and Appraisal"</a>. <i>Computers and Automation</i>: <a rel="nofollow" class="external text" href="https://archive.org/details/bitsavers_computersA_6908895/page/n15">16</a>-23.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Computers+and+Automation&rft.atitle=The+Programming+Language+Lisp%3A+An+Introduction+and+Appraisal&rft.pages=16-23&rft.date=1964-09&rft.aulast=Berkeley&rft.aufirst=Edmund+C.&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fbitsavers_computersA_6908895&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></li></ul></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFWeissman1967" class="citation book cs1">Weissman, Clark (1967). <a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/LISP/book/Weismann_LISP1.5_Primer_1967.pdf"><i>LISP 1.5 Primer</i></a> <span class="cs1-format">(PDF)</span>. Belmont, California: Dickenson Publishing Company Inc.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=LISP+1.5+Primer&rft.place=Belmont%2C+California&rft.pub=Dickenson+Publishing+Company+Inc.&rft.date=1967&rft.aulast=Weissman&rft.aufirst=Clark&rft_id=http%3A%2F%2Fwww.softwarepreservation.org%2Fprojects%2FLISP%2Fbook%2FWeismann_LISP1.5_Primer_1967.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></li></ul> </div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Lisp_(programming_language)&action=edit&section=31" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1235681985">.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}</style><style data-mw-deduplicate="TemplateStyles:r1250146164">.mw-parser-output .sister-box .side-box-abovebelow{padding:0.75em 0;text-align:center}.mw-parser-output .sister-box .side-box-abovebelow>b{display:block}.mw-parser-output .sister-box .side-box-text>ul{border-top:1px solid #aaa;padding:0.75em 0;width:217px;margin:0 auto}.mw-parser-output .sister-box .side-box-text>ul>li{min-height:31px}.mw-parser-output .sister-logo{display:inline-block;width:31px;line-height:31px;vertical-align:middle;text-align:center}.mw-parser-output .sister-link{display:inline-block;margin-left:4px;width:182px;vertical-align:middle}@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-v2.svg"]{background-color:white}}</style><div role="navigation" aria-labelledby="sister-projects" class="side-box metadata side-box-right sister-box sistersitebox plainlinks"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style> <div class="side-box-abovebelow"> <b>Lisp (programming language)</b> at Wikipedia's <a href="/wiki/Wikipedia:Wikimedia_sister_projects" title="Wikipedia:Wikimedia sister projects"><span id="sister-projects">sister projects</span></a></div> <div class="side-box-flex"> <div class="side-box-text plainlist"><ul><li><span class="sister-logo"><span class="mw-valign-middle" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/0/06/Wiktionary-logo-v2.svg/27px-Wiktionary-logo-v2.svg.png" decoding="async" width="27" height="27" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/0/06/Wiktionary-logo-v2.svg/41px-Wiktionary-logo-v2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/0/06/Wiktionary-logo-v2.svg/54px-Wiktionary-logo-v2.svg.png 2x" data-file-width="391" data-file-height="391" /></span></span></span><span class="sister-link"><a href="https://en.wiktionary.org/wiki/Lisp" class="extiw" title="wikt:Lisp">Definitions</a> from Wiktionary</span></li><li><span class="sister-logo"><span class="mw-valign-middle" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/20px-Commons-logo.svg.png" decoding="async" width="20" height="27" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/40px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span></span><span class="sister-link"><a href="https://commons.wikimedia.org/wiki/Category:Lisp_(programming_language)" class="extiw" title="c:Category:Lisp (programming language)">Media</a> from Commons</span></li><li><span class="sister-logo"><span class="mw-valign-middle" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/23px-Wikiquote-logo.svg.png" decoding="async" width="23" height="27" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/35px-Wikiquote-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/46px-Wikiquote-logo.svg.png 2x" data-file-width="300" data-file-height="355" /></span></span></span><span class="sister-link"><a href="https://en.wikiquote.org/wiki/Lisp_programming_language" class="extiw" title="q:Lisp programming language">Quotations</a> from Wikiquote</span></li><li><span class="sister-logo"><span class="mw-valign-middle" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/26px-Wikisource-logo.svg.png" decoding="async" width="26" height="27" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/39px-Wikisource-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/51px-Wikisource-logo.svg.png 2x" data-file-width="410" data-file-height="430" /></span></span></span><span class="sister-link"><a href="https://en.wikisource.org/wiki/Lambda_Papers" class="extiw" title="s:Lambda Papers">Texts</a> from Wikisource</span></li><li><span class="sister-logo"><span class="mw-valign-middle" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/27px-Wikibooks-logo.svg.png" decoding="async" width="27" height="27" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/41px-Wikibooks-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikibooks-logo.svg/54px-Wikibooks-logo.svg.png 2x" data-file-width="300" data-file-height="300" /></span></span></span><span class="sister-link"><a href="https://en.wikibooks.org/wiki/Subject:Lisp_programming_language" class="extiw" title="b:Subject:Lisp programming language">Textbooks</a> from Wikibooks</span></li><li><span class="sister-logo"><span class="mw-valign-middle" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Wikiversity_logo_2017.svg/27px-Wikiversity_logo_2017.svg.png" decoding="async" width="27" height="22" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Wikiversity_logo_2017.svg/41px-Wikiversity_logo_2017.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Wikiversity_logo_2017.svg/54px-Wikiversity_logo_2017.svg.png 2x" data-file-width="626" data-file-height="512" /></span></span></span><span class="sister-link"><a href="https://en.wikiversity.org/wiki/Topic:Lisp" class="extiw" title="v:Topic:Lisp">Resources</a> from Wikiversity</span></li></ul></div></div> </div> <dl><dt>History</dt></dl> <ul><li><a rel="nofollow" class="external text" href="http://www-formal.stanford.edu/jmc/history/lisp/lisp.html">History of Lisp</a> – <a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a>'s history of 12 February 1979</li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20050617031004/http://www8.informatik.uni-erlangen.de/html/lisp-enter.html">Lisp History</a> – Herbert Stoyan's history compiled from the documents (acknowledged by McCarthy as more complete than his own, see: <a rel="nofollow" class="external text" href="http://www-formal.stanford.edu/jmc/history/">McCarthy's history links</a>)</li> <li><a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/LISP/">History of LISP at the Computer History Museum</a></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBell2022" class="citation audio-visual cs1">Bell, Adam Gordon (2 May 2022). <a rel="nofollow" class="external text" href="https://corecursive.com/lisp-in-space-with-ron-garret/"><i>LISP in Space, with Ron Garret</i></a>. <i>CoRecursive</i> (podcast, transcript, photos).</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LISP+in+Space%2C+with+Ron+Garret&rft.date=2022-05-02&rft.aulast=Bell&rft.aufirst=Adam+Gordon&rft_id=https%3A%2F%2Fcorecursive.com%2Flisp-in-space-with-ron-garret%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span> about the use of LISP software on <a href="/wiki/List_of_NASA_robots" title="List of NASA robots">NASA robots</a>.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFCassel2022" class="citation news cs1">Cassel, David (22 May 2022). <a rel="nofollow" class="external text" href="https://thenewstack.io/nasa-programmer-remembers-debugging-lisp-in-deep-space/">"NASA Programmer Remembers Debugging Lisp in Deep Space"</a>. <i>The New Stack</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=The+New+Stack&rft.atitle=NASA+Programmer+Remembers+Debugging+Lisp+in+Deep+Space&rft.date=2022-05-22&rft.aulast=Cassel&rft.aufirst=David&rft_id=https%3A%2F%2Fthenewstack.io%2Fnasa-programmer-remembers-debugging-lisp-in-deep-space%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALisp+%28programming+language%29" class="Z3988"></span></li></ul> <dl><dt>Associations and meetings</dt></dl> <ul><li><a rel="nofollow" class="external text" href="https://www.alu.org/">Association of Lisp Users</a></li> <li><a rel="nofollow" class="external text" href="http://www.weitz.de/eclm2013/">European Common Lisp Meeting</a></li> <li><a rel="nofollow" class="external text" href="http://european-lisp-symposium.org/">European Lisp Symposium</a></li> <li><a rel="nofollow" class="external text" href="https://www.international-lisp-conference.org/">International Lisp Conference</a></li></ul> <dl><dt>Books and tutorials</dt></dl> <ul><li><i><a rel="nofollow" class="external text" href="http://www.lisperati.com/casting.html">Casting SPELs in Lisp</a></i>, a comic-book style introductory tutorial</li> <li><i><a rel="nofollow" class="external text" href="http://paulgraham.com/onlisptext.html">On Lisp</a></i>, a free book by <a href="/wiki/Paul_Graham_(computer_programmer)" class="mw-redirect" title="Paul Graham (computer programmer)">Paul Graham</a></li> <li><i><a rel="nofollow" class="external text" href="http://www.gigamonkeys.com/book/">Practical Common Lisp</a></i>, freeware edition by Peter Seibel</li> <li><a rel="nofollow" class="external text" href="http://leanpub.com/lispweb">Lisp for the web</a></li> <li><a rel="nofollow" class="external text" href="http://landoflisp.com/">Land of Lisp</a></li> <li><a rel="nofollow" class="external text" href="http://letoverlambda.com/">Let over Lambda</a></li></ul> <dl><dt>Interviews</dt></dl> <ul><li><a rel="nofollow" class="external text" href="http://purl.umn.edu/107476">Oral history interview with John McCarthy</a> at <a href="/wiki/Charles_Babbage_Institute" class="mw-redirect" title="Charles Babbage Institute">Charles Babbage Institute</a>, University of Minnesota, Minneapolis. McCarthy discusses his role in the development of time-sharing at the Massachusetts Institute of Technology. He also describes his work in artificial intelligence (AI) funded by the Advanced Research Projects Agency, including logic-based AI (LISP) and robotics.</li> <li><a rel="nofollow" class="external text" href="http://www.se-radio.net/2008/01/episode-84-dick-gabriel-on-lisp/">Interview</a> with <a href="/wiki/Richard_P._Gabriel" title="Richard P. Gabriel">Richard P. Gabriel</a> (Podcast)</li></ul> <dl><dt>Resources</dt></dl> <ul><li><a rel="nofollow" class="external text" href="http://www.cliki.net/">CLiki: the Common Lisp wiki</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160311102031/http://www.cl-user.net/asp/erw/sdataQIvH87hu8NU%24DM%3D%3D/sdataQo5Y-1Mh9urk">The Common Lisp Directory</a> (via the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>; archived from <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080905110332/http://cl-user.net/">the original</a>)</li> <li><a rel="nofollow" class="external text" href="http://www.faqs.org/faqs/lisp-faq/">Lisp FAQ Index</a></li> <li><a rel="nofollow" class="external text" href="https://paste.lisp.org/">lisppaste</a></li> <li><a rel="nofollow" class="external text" href="https://planet.lisp.org/">Planet Lisp</a></li> <li><a rel="nofollow" class="external text" href="http://lispnews.wordpress.com/">Weekly Lisp News</a></li> <li><a rel="nofollow" class="external text" href="http://newlisp.org/">newLISP - A modern, general-purpose scripting language</a></li> <li><a rel="nofollow" class="external text" href="https://discu.eu/weekly/lisp/">Lisp Weekly</a></li></ul> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Lisp_programming_language" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Lisp_programming_language" title="Template:Lisp programming language"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Lisp_programming_language" title="Template talk:Lisp programming language"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Lisp_programming_language" title="Special:EditPage/Template:Lisp programming language"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Lisp_programming_language" style="font-size:114%;margin:0 4em"><a class="mw-selflink selflink">Lisp programming language</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Features</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">Automatic storage management</a></li> <li><a href="/wiki/Conditional_(computer_programming)" title="Conditional (computer programming)">Conditionals</a></li> <li><a href="/wiki/Dynamic_typing" class="mw-redirect" title="Dynamic typing">Dynamic typing</a></li> <li><a href="/wiki/Higher-order_function" title="Higher-order function">Higher-order functions</a></li> <li><a href="/wiki/Linked_list" title="Linked list">Linked lists</a></li> <li><a href="/wiki/Macro_(computer_science)" title="Macro (computer science)">Macros</a></li> <li><a href="/wiki/M-expression" title="M-expression">M-expressions</a> (deprecated)</li> <li><a href="/wiki/Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">Read–eval–print loop</a></li> <li><a href="/wiki/Recursion_(computer_science)" title="Recursion (computer science)">Recursion</a></li> <li><a href="/wiki/S-expression" title="S-expression">S-expressions</a></li> <li><a href="/wiki/Self-hosting_(compilers)" title="Self-hosting (compilers)">Self-hosting</a> <a href="/wiki/Compiler" title="Compiler">compiler</a></li> <li><a href="/wiki/Tree_data_structure" class="mw-redirect" title="Tree data structure">Tree data structures</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Object-oriented_programming" title="Object-oriented programming">Object</a> systems</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Common_Lisp_Object_System" title="Common Lisp Object System">Common Lisp Object System</a> (CLOS)</li> <li><a href="/wiki/CommonLoops" title="CommonLoops">CommonLoops</a></li> <li><a href="/wiki/Flavors_(programming_language)" title="Flavors (programming language)">Flavors</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Programming_language_implementation" title="Programming language implementation">Implementations</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Technical_standard" title="Technical standard">Standardized</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Common_Lisp" title="Common Lisp">Common<br />Lisp</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Allegro_Common_Lisp" title="Allegro Common Lisp">Allegro Common Lisp</a></li> <li><a href="/wiki/Armed_Bear_Common_Lisp" class="mw-redirect" title="Armed Bear Common Lisp">Armed Bear Common Lisp</a> (ABCL)</li> <li><a href="/wiki/CLISP" title="CLISP">CLISP</a></li> <li><a href="/wiki/Clozure_CL" title="Clozure CL">Clozure CL</a></li> <li><a href="/wiki/CMU_Common_Lisp" title="CMU Common Lisp">CMU Common Lisp</a> (CMUCL)</li> <li><a href="/wiki/Corman_Common_Lisp" class="mw-redirect" title="Corman Common Lisp">Corman Common Lisp</a></li> <li><a href="/wiki/Embeddable_Common_Lisp" title="Embeddable Common Lisp">Embeddable Common Lisp</a> (ECL)</li> <li><a href="/wiki/GNU_Common_Lisp" title="GNU Common Lisp">GNU Common Lisp</a> (GCL)</li> <li><a href="/wiki/LispWorks" title="LispWorks">LispWorks</a></li> <li><a href="/wiki/Macintosh_Common_Lisp" title="Macintosh Common Lisp">Macintosh Common Lisp</a></li> <li><a href="/wiki/Mocl" title="Mocl">Mocl</a></li> <li>Movitz</li> <li><a href="/wiki/Poplog" title="Poplog">Poplog</a></li> <li><a href="/wiki/Steel_Bank_Common_Lisp" title="Steel Bank Common Lisp">Steel Bank Common Lisp</a> (SBCL)</li> <li><a href="/wiki/Genera_(operating_system)" title="Genera (operating system)">Symbolics Common Lisp</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><i><a href="/wiki/History_of_the_Scheme_programming_language" title="History of the Scheme programming language">History</a></i></li> <li><a href="/wiki/Bigloo" title="Bigloo">Bigloo</a></li> <li><a href="/wiki/Chez_Scheme" title="Chez Scheme">Chez Scheme</a></li> <li><a href="/wiki/Chicken_(Scheme_implementation)" title="Chicken (Scheme implementation)">Chicken</a></li> <li><a href="/wiki/Gambit_(scheme_implementation)" class="mw-redirect" title="Gambit (scheme implementation)">Gambit</a></li> <li><a href="/wiki/Game_Oriented_Assembly_Lisp" title="Game Oriented Assembly Lisp">Game Oriented Assembly Lisp</a> (GOAL)</li> <li><a href="/wiki/GNU_Guile" title="GNU Guile">GNU Guile</a></li> <li><a href="/wiki/Ikarus_(Scheme_implementation)" title="Ikarus (Scheme implementation)">Ikarus</a></li> <li><a href="/wiki/JScheme" title="JScheme">JScheme</a></li> <li><a href="/wiki/Kawa_(Scheme_implementation)" title="Kawa (Scheme implementation)">Kawa</a></li> <li><a href="/wiki/MIT/GNU_Scheme" title="MIT/GNU Scheme">MIT/GNU Scheme</a></li> <li><a href="/wiki/MultiLisp" title="MultiLisp">MultiLisp</a></li> <li><a href="/wiki/Pico_(programming_language)" title="Pico (programming language)">Pico</a></li> <li>Pocket Scheme</li> <li><a href="/wiki/Racket_(programming_language)" title="Racket (programming language)">Racket</a> (<a href="/wiki/Racket_features" title="Racket features">features</a>)</li> <li><a href="/wiki/Scheme_48" title="Scheme 48">Scheme 48</a></li> <li><a href="/wiki/SCM_(Scheme_implementation)" title="SCM (Scheme implementation)">SCM</a></li> <li><a href="/wiki/SIOD" title="SIOD">SIOD</a></li> <li><a href="/wiki/T_(programming_language)" title="T (programming language)">T</a></li> <li><a href="/wiki/TinyScheme" title="TinyScheme">TinyScheme</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/ISLISP" title="ISLISP">ISLISP</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/OpenLisp" title="OpenLisp">OpenLisp</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Unstandardized</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Logo_(programming_language)" title="Logo (programming language)">Logo</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/MSWLogo" title="MSWLogo">MSWLogo</a></li> <li><a href="/wiki/NetLogo" title="NetLogo">NetLogo</a></li> <li><a href="/wiki/StarLogo" title="StarLogo">StarLogo</a></li> <li><a href="/wiki/UCBLogo" title="UCBLogo">UCBLogo</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/POP-11" title="POP-11">POP</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/COWSEL" title="COWSEL">COWSEL</a> (POP-1)</li> <li><a href="/wiki/POP-2" title="POP-2">POP-2</a></li> <li><a href="/wiki/POP-11" title="POP-11">POP-11</a></li></ul> </div></td></tr></tbody></table><div> <ul><li><a href="/wiki/Arc_(programming_language)" title="Arc (programming language)">Arc</a></li> <li><a href="/wiki/AutoLISP" title="AutoLISP">AutoLISP</a></li> <li><a href="/wiki/BBN_LISP" title="BBN LISP">BBN LISP</a></li> <li><a href="/wiki/Clojure" title="Clojure">Clojure</a></li> <li><a href="/wiki/Dylan_(programming_language)" title="Dylan (programming language)">Dylan</a> (<a href="/wiki/Apple_Dylan" title="Apple Dylan">Apple</a>, <i><a href="/wiki/History_of_the_Dylan_programming_language" title="History of the Dylan programming language">history</a></i>)</li> <li><a href="/wiki/Emacs_Lisp" title="Emacs Lisp">Emacs Lisp</a></li> <li><a href="/wiki/EuLisp" title="EuLisp">EuLisp</a></li> <li><a href="/wiki/Franz_Lisp" title="Franz Lisp">Franz Lisp</a>, <a href="/wiki/PC-LISP" title="PC-LISP">PC-LISP</a></li> <li><a href="/wiki/Hy_(programming_language)" title="Hy (programming language)">Hy</a></li> <li><a href="/wiki/Interlisp" title="Interlisp">Interlisp</a></li> <li><a href="/wiki/Knowledge_Engineering_Environment" title="Knowledge Engineering Environment">Knowledge Engineering Environment</a></li> <li><a href="/wiki/*Lisp" title="*Lisp">*Lisp</a></li> <li><a href="/wiki/LeLisp" class="mw-redirect" title="LeLisp">LeLisp</a></li> <li><a href="/wiki/LFE_(programming_language)" title="LFE (programming language)">LFE</a></li> <li><a href="/wiki/Lisp_Machine_Lisp" title="Lisp Machine Lisp">Lisp Machine Lisp</a></li> <li><a href="/wiki/Maclisp" title="Maclisp">Maclisp</a></li> <li><a href="/wiki/MDL_(programming_language)" title="MDL (programming language)">MDL</a></li> <li><a href="/wiki/MLisp" title="MLisp">MLisp</a></li> <li><a href="/wiki/NewLISP" title="NewLISP">newLISP</a></li> <li><a href="/wiki/NIL_(programming_language)" title="NIL (programming language)">NIL</a></li> <li><a href="/wiki/PC-LISP" title="PC-LISP">PC-LISP</a></li> <li><a href="/wiki/Picolisp" class="mw-redirect" title="Picolisp">Picolisp</a></li> <li><a href="/wiki/Portable_Standard_Lisp" title="Portable Standard Lisp">Portable Standard Lisp</a></li> <li><a href="/wiki/RPL_(programming_language)" title="RPL (programming language)">RPL</a></li> <li><a href="/wiki/S-1_Lisp" title="S-1 Lisp">S-1 Lisp</a></li> <li><a href="/wiki/Cadence_SKILL" title="Cadence SKILL">SKILL</a></li> <li><a href="/wiki/Spice_Lisp" title="Spice Lisp">Spice Lisp</a></li> <li><a href="/wiki/Zetalisp" class="mw-redirect" title="Zetalisp">Zetalisp</a></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Operating_system" title="Operating system">Operating system</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <li><b><a class="mw-selflink-fragment" href="#Operating_systems">List</a></b></li> <li><a href="/wiki/Common_Lisp_Interface_Manager" title="Common Lisp Interface Manager">Common Lisp Interface Manager</a>, <a href="/wiki/McCLIM" title="McCLIM">McCLIM</a></li> <li><a href="/wiki/Genera_(operating_system)" title="Genera (operating system)">Genera</a></li> <li><a href="/wiki/Scsh" title="Scsh">Scsh</a></li> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Computer_hardware" title="Computer hardware">Hardware</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Lisp_machine" title="Lisp machine">Lisp machine</a> <ul><li><a href="/wiki/TI_Explorer" class="mw-redirect" title="TI Explorer">TI Explorer</a></li></ul></li> <li><a href="/wiki/Space-cadet_keyboard" title="Space-cadet keyboard">Space-cadet keyboard</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Community_of_practice" title="Community of practice">Community<br />of practice</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Technical standards</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Scheme_Requests_for_Implementation" title="Scheme Requests for Implementation">Scheme Requests for Implementation</a></li> <li><a href="/wiki/Common_Lisp_HyperSpec" title="Common Lisp HyperSpec">Common Lisp HyperSpec</a></li> <li><a href="/wiki/X3J13" title="X3J13">X3J13</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Education</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Books</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Common_Lisp_the_Language" title="Common Lisp the Language">Common Lisp the Language</a></li> <li><a href="/wiki/How_to_Design_Programs" title="How to Design Programs">How to Design Programs</a> (HTDP)</li> <li><a href="/wiki/On_Lisp" title="On Lisp">On Lisp</a></li> <li><a href="/wiki/Practical_Common_Lisp" title="Practical Common Lisp">Practical Common Lisp</a></li> <li><a href="/wiki/Structure_and_Interpretation_of_Computer_Programs" title="Structure and Interpretation of Computer Programs">Structure and Interpretation of Computer Programs</a> (SICP)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Curriculum</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ProgramByDesign" title="ProgramByDesign">ProgramByDesign</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Organizations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Business</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Apple_Inc." title="Apple Inc.">Apple Computer</a></li> <li><a href="/wiki/BBN_Technologies" class="mw-redirect" title="BBN Technologies">Bolt, Beranek and Newman</a></li> <li><a href="/wiki/Harlequin_(software_company)" title="Harlequin (software company)">Harlequin</a></li> <li><a href="/wiki/Lucid_Inc." title="Lucid Inc.">Lucid Inc.</a></li> <li><a href="/wiki/Symbolics" title="Symbolics">Symbolics</a></li> <li><a href="/wiki/Xanalys" title="Xanalys">Xanalys</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Education</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Massachusetts_Institute_of_Technology" title="Massachusetts Institute of Technology">Massachusetts Institute of Technology</a> (MIT)</li> <li><a href="/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory" title="MIT Computer Science and Artificial Intelligence Laboratory">MIT Computer Science and Artificial Intelligence Laboratory</a> (CSAIL)</li> <li><a href="/wiki/Stanford_University_centers_and_institutes#Stanford_Artificial_Intelligence_Laboratory" title="Stanford University centers and institutes">Stanford Artificial Intelligence Laboratory</a></li> <li><a href="/wiki/University_of_California,_Berkeley" title="University of California, Berkeley">University of California, Berkeley</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">People</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Edmund_Berkeley" title="Edmund Berkeley">Edmund Berkeley</a></li> <li><a href="/wiki/Daniel_G._Bobrow" title="Daniel G. Bobrow">Daniel G. Bobrow</a></li> <li><a href="/wiki/William_Clinger_(computer_scientist)" title="William Clinger (computer scientist)">William Clinger</a></li> <li><a href="/wiki/R._Kent_Dybvig" title="R. Kent Dybvig">R. Kent Dybvig</a></li> <li><a href="/wiki/Matthias_Felleisen" title="Matthias Felleisen">Matthias Felleisen</a></li> <li><a href="/wiki/Robert_Bruce_Findler" title="Robert Bruce Findler">Robert Bruce Findler</a></li> <li><a href="/wiki/Matthew_Flatt" title="Matthew Flatt">Matthew Flatt</a></li> <li><a href="/wiki/Phyllis_Fox" title="Phyllis Fox">Phyllis Fox</a></li> <li><a href="/wiki/Paul_Graham_(programmer)" title="Paul Graham (programmer)">Paul Graham</a></li> <li><a href="/wiki/Richard_Greenblatt_(programmer)" title="Richard Greenblatt (programmer)">Richard Greenblatt</a></li> <li>Timothy P. Hart</li> <li><a href="/wiki/Louis_Hodes" title="Louis Hodes">Louis Hodes</a></li> <li>Mike Levin</li> <li><a href="/wiki/David_Luckham" title="David Luckham">David Luckham</a></li> <li><a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a></li> <li><a href="/wiki/Robert_Tappan_Morris" title="Robert Tappan Morris">Robert Tappan Morris</a></li> <li><a href="/wiki/Joel_Moses" title="Joel Moses">Joel Moses</a></li> <li><a href="/wiki/David_Park_(computer_scientist)" title="David Park (computer scientist)">David Park</a></li> <li><a href="/wiki/Steve_Russell_(computer_scientist)" title="Steve Russell (computer scientist)">Steve Russell</a></li> <li><a href="/wiki/Richard_Stallman" title="Richard Stallman">Richard Stallman</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Scott_Fahlman" title="Scott Fahlman">Scott Fahlman</a></li> <li><a href="/wiki/Richard_P._Gabriel" title="Richard P. Gabriel">Richard P. Gabriel</a></li> <li><a href="/wiki/Philip_Greenspun" title="Philip Greenspun">Philip Greenspun</a> (<a href="/wiki/Greenspun%27s_tenth_rule" title="Greenspun's tenth rule">10th rule</a>)</li> <li><a href="/wiki/David_A._Moon" title="David A. Moon">David A. Moon</a></li> <li><a href="/wiki/Kent_Pitman" title="Kent Pitman">Kent Pitman</a></li> <li><a href="/wiki/Guy_L._Steele_Jr." title="Guy L. Steele Jr.">Guy L. Steele Jr.</a></li> <li><a href="/wiki/Daniel_Weinreb" title="Daniel Weinreb">Daniel Weinreb</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Matthias_Felleisen" title="Matthias Felleisen">Matthias Felleisen</a></li> <li><a href="/wiki/Shriram_Krishnamurthi" title="Shriram Krishnamurthi">Shriram Krishnamurthi</a></li> <li><a href="/wiki/Guy_L._Steele_Jr." title="Guy L. Steele Jr.">Guy L. Steele Jr.</a></li> <li><a href="/wiki/Gerald_Jay_Sussman" title="Gerald Jay Sussman">Gerald Jay Sussman</a></li> <li><a href="/wiki/Julie_Sussman" class="mw-redirect" title="Julie Sussman">Julie Sussman</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Logo_(programming_language)" title="Logo (programming language)">Logo</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Hal_Abelson" title="Hal Abelson">Hal Abelson</a></li> <li><a href="/wiki/Denison_Bollay" title="Denison Bollay">Denison Bollay</a></li> <li><a href="/wiki/Wally_Feurzeig" title="Wally Feurzeig">Wally Feurzeig</a></li> <li><a href="/wiki/Brian_Harvey_(lecturer)" title="Brian Harvey (lecturer)">Brian Harvey</a></li> <li><a href="/wiki/Seymour_Papert" title="Seymour Papert">Seymour Papert</a></li> <li><a href="/wiki/Mitchel_Resnick" title="Mitchel Resnick">Mitchel Resnick</a></li> <li><a href="/wiki/Cynthia_Solomon" title="Cynthia Solomon">Cynthia Solomon</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/POP-11" title="POP-11">POP</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Rod_Burstall" title="Rod Burstall">Rod Burstall</a></li> <li><a href="/wiki/Robin_Popplestone" title="Robin Popplestone">Robin Popplestone</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/List_of_Lisp-family_programming_languages" title="List of Lisp-family programming languages">List</a></b> <span class="noviewer" typeof="mw:File"><a href="/wiki/File:Symbol_book_class2.svg" class="mw-file-description" title="Wikipedia book"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_book_class2.svg/16px-Symbol_book_class2.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_book_class2.svg/23px-Symbol_book_class2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_book_class2.svg/31px-Symbol_book_class2.svg.png 2x" data-file-width="180" data-file-height="185" /></a></span> <b><a href="https://en.wikibooks.org/wiki/Subject:Lisp_programming_language" class="extiw" title="wikibooks:Subject:Lisp programming language">Books</a></b> <span class="noviewer" typeof="mw:File"><span title="Commons page"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span> <b><a href="https://commons.wikimedia.org/wiki/Category:Lisp_(programming_language)" class="extiw" title="commons:Category:Lisp (programming language)">Commons</a></b> <span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:Lisp_(programming_language)" title="Category:Lisp (programming language)">Category</a></b> <span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:Lisp_programming_language_family" title="Category:Lisp programming language family">Category</a></b></div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="John_McCarthy" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:John_McCarthy" title="Template:John McCarthy"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:John_McCarthy" title="Template talk:John McCarthy"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:John_McCarthy" title="Special:EditPage/Template:John McCarthy"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="John_McCarthy" style="font-size:114%;margin:0 4em"><a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a></div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Artificial_intelligence" title="Artificial intelligence">Artificial intelligence</a></li> <li><a href="/wiki/Circumscription_(logic)" title="Circumscription (logic)">Circumscription</a></li> <li><a href="/wiki/Dartmouth_workshop" title="Dartmouth workshop">Dartmouth workshop</a></li> <li><a href="/wiki/Frame_problem" title="Frame problem">Frame problem</a></li> <li><a href="/wiki/Garbage_collection_(computer_science)" title="Garbage collection (computer science)">Garbage collection</a></li> <li><a class="mw-selflink selflink">Lisp</a></li> <li><a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a></li> <li><a href="/wiki/Short-circuit_evaluation" title="Short-circuit evaluation">McCarthy evaluation</a></li> <li><a href="/wiki/McCarthy_Formalism" title="McCarthy Formalism">McCarthy Formalism</a></li> <li><a href="/wiki/McCarthy_91_function" title="McCarthy 91 function">McCarthy 91 function</a></li> <li><a href="/wiki/Situation_calculus" title="Situation calculus">Situation calculus</a></li> <li><a href="/wiki/Space_fountain" title="Space fountain">Space fountain</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Programming_languages" style="padding:3px"><table class="nowraplinks hlist mw-collapsible expanded navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Programming_languages" title="Template:Programming languages"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Programming_languages" title="Template talk:Programming languages"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Programming_languages" title="Special:EditPage/Template:Programming languages"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Programming_languages" style="font-size:114%;margin:0 4em"><a href="/wiki/Programming_language" title="Programming language">Programming languages</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><a href="/wiki/Comparison_of_programming_languages" title="Comparison of programming languages">Comparison</a></li> <li><a href="/wiki/Timeline_of_programming_languages" title="Timeline of programming languages">Timeline</a></li> <li><a href="/wiki/History_of_programming_languages" title="History of programming languages">History</a></li></ul> </div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada</a></li> <li><a href="/wiki/ALGOL" title="ALGOL">ALGOL</a> <ul><li><a href="/wiki/Simula" title="Simula">Simula</a></li></ul></li> <li><a href="/wiki/APL_(programming_language)" title="APL (programming language)">APL</a></li> <li><a href="/wiki/Assembly_language" title="Assembly language">Assembly</a></li> <li><a href="/wiki/BASIC" title="BASIC">BASIC</a> <ul><li><a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a> <ul><li><a href="/wiki/Visual_Basic_(classic)" title="Visual Basic (classic)">classic</a></li> <li><a href="/wiki/Visual_Basic_(.NET)" title="Visual Basic (.NET)">.NET</a></li></ul></li></ul></li> <li><a href="/wiki/C_(programming_language)" title="C (programming language)">C</a></li> <li><a href="/wiki/C%2B%2B" title="C++">C++</a></li> <li><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li> <li><a href="/wiki/COBOL" title="COBOL">COBOL</a></li> <li><a href="/wiki/Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a></li> <li><a href="/wiki/Forth_(programming_language)" title="Forth (programming language)">Forth</a></li> <li><a href="/wiki/Fortran" title="Fortran">Fortran</a></li> <li><a href="/wiki/Go_(programming_language)" title="Go (programming language)">Go</a></li> <li><a href="/wiki/Haskell" title="Haskell">Haskell</a></li> <li><a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a></li> <li><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a></li> <li><a href="/wiki/Julia_(programming_language)" title="Julia (programming language)">Julia</a></li> <li><a href="/wiki/Kotlin_(programming_language)" title="Kotlin (programming language)">Kotlin</a></li> <li><a class="mw-selflink selflink">Lisp</a></li> <li><a href="/wiki/Lua_(programming_language)" title="Lua (programming language)">Lua</a></li> <li><a href="/wiki/MATLAB" title="MATLAB">MATLAB</a></li> <li><a href="/wiki/ML_(programming_language)" title="ML (programming language)">ML</a></li> <li><a href="/wiki/Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a> <ul><li><a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a></li></ul></li> <li><a href="/wiki/Perl" title="Perl">Perl</a></li> <li><a href="/wiki/PHP" title="PHP">PHP</a></li> <li><a href="/wiki/Prolog" title="Prolog">Prolog</a></li> <li><a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a></li> <li><a href="/wiki/R_(programming_language)" title="R (programming language)">R</a></li> <li><a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></li> <li><a href="/wiki/Rust_(programming_language)" title="Rust (programming language)">Rust</a></li> <li><a href="/wiki/SQL" title="SQL">SQL</a></li> <li><a href="/wiki/Scratch_(programming_language)" title="Scratch (programming language)">Scratch</a></li> <li><a href="/wiki/Shell_script" title="Shell script">Shell</a></li> <li><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a></li> <li><a href="/wiki/Swift_(programming_language)" title="Swift (programming language)">Swift</a></li> <li><i><a href="/wiki/List_of_programming_languages" title="List of programming languages">more...</a></i></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b>Lists:</b> <a href="/wiki/List_of_programming_languages" title="List of programming languages">Alphabetical</a></li> <li><a href="/wiki/List_of_programming_languages_by_type" title="List of programming languages by type">Categorical</a></li> <li><a href="/wiki/Generational_list_of_programming_languages" title="Generational list of programming languages">Generational</a></li> <li><a href="/wiki/Non-English-based_programming_languages" title="Non-English-based programming languages">Non-English-based</a></li> <li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Programming_languages" title="Category:Programming languages">Category</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"><style data-mw-deduplicate="TemplateStyles:r1038841319">.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}</style></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q132874#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q132874#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata" style="font-size:114%;margin:0 4em"><a href="/wiki/Help:Authority_control" title="Help:Authority control">Authority control databases</a> <span class="mw-valign-text-top noprint" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q132874#identifiers" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">International</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="http://id.worldcat.org/fast/989718/">FAST</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4035918-9">Germany</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh85077449">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb11934831x">France</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb11934831x">BnF data</a></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="LISP (programovací jazyk)"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph117699&CON_LNG=ENG">Czech Republic</a></span></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="http://catalogo.bne.es/uhtbin/authoritybrowse.cgi?action=display&authority_id=XX535292">Spain</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="http://olduli.nli.org.il/F/?func=find-b&local_base=NLX10&find_code=UID&request=987007531493805171">Israel</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.idref.fr/027270394">IdRef</a></span></li></ul></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐mhg5j Cached time: 20241122140813 Cache expiry: 726721 Reduced expiry: true Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 1.602 seconds Real time usage: 3.078 seconds Preprocessor visited node count: 9837/1000000 Post‐expand include size: 285945/2097152 bytes Template argument size: 18222/2097152 bytes Highest expansion depth: 15/100 Expensive parser function count: 161/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 337436/5000000 bytes Lua time usage: 0.795/10.000 seconds Lua memory usage: 7787647/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 2732.693 1 -total 33.54% 916.435 125 Template:Lisp2 19.98% 546.122 1 Template:Reflist 11.44% 312.488 45 Template:Cite_web 5.01% 137.038 1 Template:Infobox_programming_language 4.75% 129.716 1 Template:Infobox 4.74% 129.455 11 Template:Navbox 4.34% 118.605 1 Template:Short_description 3.86% 105.454 17 Template:Cite_book 3.42% 93.334 1 Template:Lisp_programming_language --> <!-- Saved in parser cache with key enwiki:pcache:idhash:18016-0!canonical and timestamp 20241122140813 and revision id 1256161736. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Lisp_(programming_language)&oldid=1256161736">https://en.wikipedia.org/w/index.php?title=Lisp_(programming_language)&oldid=1256161736</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Lisp_(programming_language)" title="Category:Lisp (programming language)">Lisp (programming language)</a></li><li><a href="/wiki/Category:Academic_programming_languages" title="Category:Academic programming languages">Academic programming languages</a></li><li><a href="/wiki/Category:American_inventions" title="Category:American inventions">American inventions</a></li><li><a href="/wiki/Category:Dynamically_typed_programming_languages" title="Category:Dynamically typed programming languages">Dynamically typed programming languages</a></li><li><a href="/wiki/Category:Extensible_syntax_programming_languages" title="Category:Extensible syntax programming languages">Extensible syntax programming languages</a></li><li><a href="/wiki/Category:Functional_languages" title="Category:Functional languages">Functional languages</a></li><li><a href="/wiki/Category:Lisp_programming_language_family" title="Category:Lisp programming language family">Lisp programming language family</a></li><li><a href="/wiki/Category:Programming_languages" title="Category:Programming languages">Programming languages</a></li><li><a href="/wiki/Category:Programming_languages_created_in_1958" title="Category:Programming languages created in 1958">Programming languages created in 1958</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Articles_with_example_Lisp_(programming_language)_code" title="Category:Articles with example Lisp (programming language) code">Articles with example Lisp (programming language) code</a></li><li><a href="/wiki/Category:Articles_containing_potentially_dated_statements_from_2010" title="Category:Articles containing potentially dated statements from 2010">Articles containing potentially dated statements from 2010</a></li><li><a href="/wiki/Category:All_articles_containing_potentially_dated_statements" title="Category:All articles containing potentially dated statements">All articles containing potentially dated statements</a></li><li><a href="/wiki/Category:All_accuracy_disputes" title="Category:All accuracy disputes">All accuracy disputes</a></li><li><a href="/wiki/Category:Articles_with_disputed_statements_from_April_2013" title="Category:Articles with disputed statements from April 2013">Articles with disputed statements from April 2013</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_November_2008" title="Category:Articles with unsourced statements from November 2008">Articles with unsourced statements from November 2008</a></li><li><a href="/wiki/Category:CS1:_long_volume_value" title="Category:CS1: long volume value">CS1: long volume value</a></li><li><a href="/wiki/Category:Pages_using_Sister_project_links_with_wikidata_namespace_mismatch" title="Category:Pages using Sister project links with wikidata namespace mismatch">Pages using Sister project links with wikidata namespace mismatch</a></li><li><a href="/wiki/Category:Pages_using_Sister_project_links_with_wikidata_mismatch" title="Category:Pages using Sister project links with wikidata mismatch">Pages using Sister project links with wikidata mismatch</a></li><li><a href="/wiki/Category:Pages_using_Sister_project_links_with_hidden_wikidata" title="Category:Pages using Sister project links with hidden wikidata">Pages using Sister project links with hidden wikidata</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 8 November 2024, at 15:12<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Lisp_(programming_language)&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-x4q2f","wgBackendResponseTime":192,"wgPageParseReport":{"limitreport":{"cputime":"1.602","walltime":"3.078","ppvisitednodes":{"value":9837,"limit":1000000},"postexpandincludesize":{"value":285945,"limit":2097152},"templateargumentsize":{"value":18222,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":161,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":337436,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 2732.693 1 -total"," 33.54% 916.435 125 Template:Lisp2"," 19.98% 546.122 1 Template:Reflist"," 11.44% 312.488 45 Template:Cite_web"," 5.01% 137.038 1 Template:Infobox_programming_language"," 4.75% 129.716 1 Template:Infobox"," 4.74% 129.455 11 Template:Navbox"," 4.34% 118.605 1 Template:Short_description"," 3.86% 105.454 17 Template:Cite_book"," 3.42% 93.334 1 Template:Lisp_programming_language"]},"scribunto":{"limitreport-timeusage":{"value":"0.795","limit":"10.000"},"limitreport-memusage":{"value":7787647,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-mhg5j","timestamp":"20241122140813","ttl":726721,"transientcontent":true}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Lisp (programming language)","url":"https:\/\/en.wikipedia.org\/wiki\/Lisp_(programming_language)","sameAs":"http:\/\/www.wikidata.org\/entity\/Q132874","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q132874","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2001-09-21T16:22:19Z","dateModified":"2024-11-08T15:12:28Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/4\/48\/Lisp_logo.svg","headline":"functional programming language based on the lambda calculus"}</script> </body> </html>