List Processing • Logical Inference • Symbolic Programming
📚 Dedicated to John McCarthy (1927-2011)
Mathematician, Computer Scientist, and Father of Artificial Intelligence
Who gave us LISP and taught us that code is data, data is code
"LISP is worth learning for the profound enlightenment experience you will have when you finally get it." — Eric S. Raymond
John McCarthy creates LISP at MIT, introducing the concept of symbolic computation and recursive function theory to programming.
LISP becomes the lingua franca of artificial intelligence research, powering the first expert systems and natural language processors.
LISP machines emerge - specialized computers designed specifically to run LISP code efficiently, representing the pinnacle of symbolic computing.
Modern LISP dialects (Common Lisp, Scheme, Clojure) continue to influence programming language design and power cutting-edge applications.
Code is data, data is code. LISP programs can manipulate themselves, enabling powerful metaprogramming capabilities that blur the line between compilation and execution.
Built for reasoning about symbols and relationships, LISP excels at knowledge representation, expert systems, and logical inference.
LISP pioneered garbage collection, freeing programmers from manual memory management and enabling focus on algorithmic elegance.
The REPL (Read-Eval-Print Loop) enables live coding, immediate feedback, and exploratory programming that accelerates development.
First-class functions, closures, and lexical scoping enable elegant solutions to complex problems with minimal syntactic overhead.
Sophisticated pattern matching capabilities enable elegant parsing, transformation, and analysis of complex data structures.
Enter a LISP expression below and see it evaluated (simulated):
Expert systems, machine learning, natural language processing
AutoCAD, animation systems, procedural generation
Scientific computing, financial modeling, optimization
Clojure web apps, real-time systems, microservices
Language design, formal verification, theorem proving
Configuration systems, rule engines, code generation
LISP's homoiconic nature means that programs are represented as data structures that the language can manipulate. This enables unprecedented flexibility in metaprogramming and code generation.
With just parentheses and atoms, LISP achieves remarkable expressiveness. The uniform syntax eliminates special cases and enables tools to work uniformly across all code.
LISP pioneered the concept of interactive programming through the REPL, allowing developers to build and test programs incrementally, leading to faster iteration and deeper understanding.
LISP introduced many functional programming concepts that have become mainstream: first-class functions, closures, recursion as a primary control structure, and immutable data structures.
The industrial-strength LISP with extensive libraries, powerful macro system, and ANSI standardization. Perfect for complex applications and research.
Minimalist and mathematically elegant, focusing on clean semantics and proper tail recursion. Ideal for education and language research.
Modern LISP for the JVM with emphasis on immutability, concurrency, and practical programming. Brings LISP to modern enterprise environments.
Enter a non-negative integer below to calculate its factorial:
Enter a non-negative integer below to find its Fibonacci number:
First LISP compiler created by Timothy Hart and Mike Levin at MIT, dramatically improving performance over interpreted versions.
Scheme developed by Guy Steele and Gerald Sussman at MIT, emphasizing minimalism and lexical scoping.
Common Lisp standardization begins, unifying various LISP dialects into a single, powerful language specification.
GNU Emacs released - the extensible, customizable text editor that demonstrates LISP's power in creating domain-specific languages.
Paul Graham founds Viaweb (later Yahoo! Store), proving LISP's viability for commercial web applications.
Clojure created by Rich Hickey, bringing LISP to the JVM and emphasizing functional programming and concurrency.
LISP principles influence modern languages: JavaScript's functional features, React's immutability concepts, and the rise of functional programming paradigms.