Wikipedia:Reference desk/Archives/Computing/2016 August 10#Succinct LISP implementation.3F

{{#ifeq:{{PAGENAME}}|Special:Undelete| |{{#if:|

}} {{#ifeq:{{NAMESPACE}}|Wikipedia|{{#switch:{{NAMESPACE}}|= |
}}|{{error:not substituted|Archive header}}
}}}} {{#if:|
}}
width = "100%"
colspan="3" align="center" | Computing desk
width="20%" align="left" | < August 9

! width="25%" align="center"|<< Jul | August | Sep >>

! width="20%" align="right" |{{#ifexist:Wikipedia:Reference desk/Archives/Computing/2016 August 11|August 11|Current desk}} >

align=center width=95% style="background: #FFFFFF; border: 1px solid #003EBA;" cellpadding="8" cellspacing="0"
style="background: #5D7CBA; text-align: center; font-family:Arial; color:#FFFFFF;" | Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is {{#ifexist:Wikipedia:Reference desk/Archives/Computing/2016 August 20|an archive page|a transcluded archive page}}. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.

__TOC__

= August 10 =

Succinct LISP implementation?

Is it true that LISP can be implemented or defined in two pages? If yes, where can I find these two pages?Hofhof (talk) 00:08, 10 August 2016 (UTC)

:You can implement a tiny dialect with enough features to write nontrivial programs: [http://norvig.com/lis.py here's one in a couple of pages of Python]. You can't implement or define a standard dialect (Common Lisp or Scheme) in that space, except with very tiny type or maybe with a meta-circular evaluator that delegates most functionality to another implementation. -- BenRG (talk) 03:57, 10 August 2016 (UTC)

:Little Schemer had a toy meta-circular evaluator. Actually, every lisp book discusses one, and this is what the "one or two pages" refers to. Lisp is very homoiconic, that is, a lisp program is just another sexp. A lisp evaluator just reads in lists, looks up atoms and applies functions (the car of the list) to arguments (the rest.) This doesn't mean a serious implementation, especially in something like C, can't be hundreds of thousands of lines of code. Whatsmore, due to stuff like reader macros where the program can actually re-program the reader itself, lisp is not context-free and only a full lisp implementation can parse arbitrary lisp. Asmrulz (talk) 05:24, 10 August 2016 (UTC)

:[https://sep.yimg.com/ty/cdn/paulgraham/jmc.lisp Here is John McCarth's LISP translated into Common Lisp by Paul Grahm].172.56.34.174 (talk) 02:34, 15 August 2016 (UTC)