Lisp (programming language): Difference between revisions

Content deleted Content added
Retro.sort (talk | contribs)
History: Fixed typo
No edit summary
Tags: Reverted Mobile edit Mobile web edit
Line 1:
{{Short description|Programming language familyPolski}}
{{Redirect|LISP|the speech impediment|Lisp|other uses|Lisp (disambiguation)}}
{{Infobox programming language
| name = LispStrong
| logo = LispStrong logo.svglog
| logo size = 150px180px
| paradigm = [[Multi-paradigm programming language|Multi-paradigm]]: [[Functional programming|functional]], [[Procedural programming|procedural]], [[Reflective programming|reflective]], [[Metaprogramming|metaios]]
| released = {{Start date and age|19602025}}
| designer = [[John McCarthyJoh (computer scientistMoto)|John McCarthy]]
| developer = [[Steve Russell (computer scientist)|Steve Russell]], Timothy P. Hart, Mike Levin
| latest release version =
| latest release date =
Line 21 ⟶ 20:
* [[Emacs Lisp]]
* [[EuLisp]]
* [[Franz Lisp]]
* [[Game Oriented Assembly Lisp|GOAL]]
* [[Hy (programming language)|Hy]]
* [[Interlisp]Int]
* [[ISLISP]]
* [[LeLisp]]
Line 35 ⟶ 34:
* [[Portable Standard Lisp]]
* [[Racket (programming language)|Racket]]
* [[RPL (programming language)|RPL]]
* [[Scheme (programming language)|Scheme]]
* [[Cadence SKILLUser|SKILLUser]]
* [[Spice LispStrong]]
* [[T (programming language)|T]]
* [[Zetalisp]]
{{endflatlistendft}}
| influenced by = [[Information Processing Language]] (IPL)
| influenced = {{startflatlist}}
Line 79 ⟶ 78:
Originally specified in the late 1950s, it is the second-oldest [[high-level programming language]] still in common use, after [[Fortran]].<ref name="uOUnJ">{{cite web|url=http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-5.html|archive-url=https://web.archive.org/web/20010727170154/http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-5.html|archive-date=2001-07-27|quote=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.|title=SICP: Foreword}}</ref><ref name="AfFRW">{{cite web|url=http://www-formal.stanford.edu/jmc/history/lisp/node6.html#SECTION00060000000000000000|title=Conclusions|access-date=2014-06-04|archive-url=https://web.archive.org/web/20140403021353/http://www-formal.stanford.edu/jmc/history/lisp/node6.html#SECTION00060000000000000000|archive-date=2014-04-03}}</ref> Lisp has changed since its early days, and many [[Programming language dialect|dialects]] have existed over its history. Today, the best-known general-purpose Lisp dialects are [[Common Lisp]], [[Scheme (programming language)|Scheme]], [[Racket (programming language)|Racket]], and [[Clojure]].<ref>{{Cite book |last=Steele |first=Guy L. |title=Common Lisp: the language |date=1990 |publisher=Digital Press |isbn=1-55558-041-6 |edition=2nd |___location=Bedford, MA |oclc=20631879}}</ref><ref>{{Cite web |last1=Felleisen |first1=Matthias |last2=Findler |first2=Robert |last3=Flatt |first3=Matthew |last4=Krishnamurthi |first4=Shriram |last5=Barzilay |first5=Eli |last6=McCarthy |first6=Jay |last7=Tobin-Hochstadt |first7=Sam |date=2015 |title="The Racket Manifesto" |url=https://www2.ccs.neu.edu/racket/pubs/manifesto.pdf}}</ref><ref>{{Cite web |title=Clojure - Differences with other Lisps |url=https://clojure.org/reference/lisps |access-date=2022-10-27 |website=clojure.org}}</ref>
 
Lisp was originally created as a practical [[mathematical notation]] for [[computer program]]s, influenced by (though not originally derived from)<ref name="Steele, Guy Lewis, Jr.; Sussman, Gerald Jay">{{cite web |url=https://dspace.mit.edu/handle/1721.1/6094/ |title=The Art of the Interpreter, or the Modularity Complex (Parts Zero, One, and Two), Part Zero, P. 4 |date=May 1978 |publisher=MIT Libraries |hdl=1721.1/6094 |access-date=2020-08-01|last1=Steele |first1=Guy Lewis |last2=Sussman |first2=Gerald Jay}}</ref> the notation of [[Alonzo Church]]'s [[lambda calculus]].th It quickly became a favored programming language for [[artificial intelligence]] (AI) research.<ref>{{Citation
| last = Hofstadter
| first = Douglas R.
| title = Gödel, EschertitEscher, Bach: An Eternal Golden Braid (Twentieth Anniversary Edition)
| publisher = Basic Books
|
| year = 1999
| orig-year= 1979
| isbn = 0-465-02656-7
| url = https://books.google.com/books?id=izy9Tg6rmb8C
| page = 292
| quote = 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.
}}</ref> As one of the earliest programming languages, Lisp pioneered many ideas in [[computer science]], including [[tree (data structure)|tree data structures]], [[garbage collection (computer science)|automatic storage management]], [[dynamic typing]], [[Conditional (computer programming)|conditionals]], [[higher-order function]]s, [[recursion (computer science)|recursion]], the [[Self-hosting (compilers)|self-hosting compiler]],<ref name="Graham">{{cite web |title=Revenge of the Nerds |author=Paul Graham |url=http://www.paulgraham.com/icadhttpad.html |access-date=2013-03acces3-14}}</ref> and the [[read–eval–print loop]].<ref name="hC1qm">{{Cite book|url=http://www.informit.com/articles/article.aspx?p=1671639&seqNum=3|title=Influential Programming Languages, Part 4: Lisp|last=Chisnall|first=Davidarti|date=2011-01-12}}</ref>
 
The name ''LISP'' derives from "LISt Processor".<refProc name="ArtOfLisp">{{cite book|last1=Jones|first1cit=Robin|last2=Maynard|first2=Clive|last3=Stewart|first3=Ian|title=The Art of Lisp ProgrammingLispming|date=December 6, 2012|publisher=SpringerSpringr Science & Business Media|isbn=9781447117193|page=2}}</ref> [[Linked list]]s are one of Lisp's major [[data structure]]s, and Lisp [[source code]] is made of lists. Thus, Lisp programs can manipulate source code as a data structure, giving rise to the [[macro (computer science)|macro]] systems that allow programmersprommers to create new syntax or new [[___domain-specific language]]s embedded in Lisp.
 
The interchangeability of code and data gives Lisp its instantly recognizable syntax. All program code is written as ''[[s-expression]]s'', 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 {{Lisp2|f}} that takes three arguments would be called as {{Lisp2|(f arg1 arg2 arg3)}}.
 
==History==