Lisp (programming language)
Programming language
Lisp
[[File:Script error: No such module "InfoboxImage".|frameless|alt=]]
Paradigm | Multi-paradigm: functional, procedural, reflective, meta |
---|---|
Family | Lisp |
Designed by | John McCarthy |
Developer | |
First appeared | |
Typing discipline | Dynamic, strong |
Lisp (historically, LISP) is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today. Only Fortran is older, by one year. Lisp has changed since its early days, and many dialects have existed over its history. Today, the most widely known general-purpose Lisp dialects are Common Lisp and Scheme.
History[edit | edit source]
Lisp was invented by John McCarthy in 1958 while he was at the MIT. He published its design in a paper in Communications of the ACM in 1960, entitled "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I". Lisp was originally created as a practical mathematical notation for computer programs, influenced by the lambda calculus, and soon became the favored programming language for artificial intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, and the self-hosting compiler.
Syntax and Semantics[edit | edit source]
Lisp is known for its fully parenthesized prefix notation. All code and data are written as S-expressions, or parenthesized lists. For example, the function call that adds 1 and 2 is written as:
(+ 1 2)
This syntax allows for easy manipulation of code as data, which is a key feature of Lisp.
Dialects[edit | edit source]
Over its long history, many dialects of Lisp have been developed. Some of the most notable include:
- Common Lisp: A general-purpose, multi-paradigm programming language that supports procedural, functional, and object-oriented programming.
- Scheme: A minimalist dialect of Lisp that emphasizes a smaller standard core with powerful tools for language extension.
- Clojure: A modern, functional dialect of Lisp that runs on the Java Virtual Machine (JVM) and emphasizes immutability and concurrency.
- Emacs Lisp: A dialect used as a scripting language by the Emacs text editor.
- Racket: A descendant of Scheme, designed to be a general-purpose, multi-paradigm programming language.
Influence[edit | edit source]
Lisp has had a significant influence on many other programming languages and on the field of computer science as a whole. Languages such as Python, Ruby, and JavaScript have borrowed concepts from Lisp. The language's emphasis on recursion and higher-order functions has also influenced the development of functional programming.
Applications[edit | edit source]
Lisp has been used in a variety of applications, particularly in the field of artificial intelligence. Its ability to easily manipulate symbolic information and its powerful macro system make it well-suited for AI research and development. Lisp is also used in academic research, rapid prototyping, and exploratory programming.
See also[edit | edit source]
References[edit | edit source]
External links[edit | edit source]
Search WikiMD
Ad.Tired of being Overweight? Try W8MD's physician weight loss program.
Semaglutide (Ozempic / Wegovy and Tirzepatide (Mounjaro / Zepbound) available.
Advertise on WikiMD
WikiMD's Wellness Encyclopedia |
Let Food Be Thy Medicine Medicine Thy Food - Hippocrates |
Translate this page: - East Asian
中文,
日本,
한국어,
South Asian
हिन्दी,
தமிழ்,
తెలుగు,
Urdu,
ಕನ್ನಡ,
Southeast Asian
Indonesian,
Vietnamese,
Thai,
မြန်မာဘာသာ,
বাংলা
European
español,
Deutsch,
français,
Greek,
português do Brasil,
polski,
română,
русский,
Nederlands,
norsk,
svenska,
suomi,
Italian
Middle Eastern & African
عربى,
Turkish,
Persian,
Hebrew,
Afrikaans,
isiZulu,
Kiswahili,
Other
Bulgarian,
Hungarian,
Czech,
Swedish,
മലയാളം,
मराठी,
ਪੰਜਾਬੀ,
ગુજરાતી,
Portuguese,
Ukrainian
Medical Disclaimer: WikiMD is not a substitute for professional medical advice. The information on WikiMD is provided as an information resource only, may be incorrect, outdated or misleading, and is not to be used or relied on for any diagnostic or treatment purposes. Please consult your health care provider before making any healthcare decisions or for guidance about a specific medical condition. WikiMD expressly disclaims responsibility, and shall have no liability, for any damages, loss, injury, or liability whatsoever suffered as a result of your reliance on the information contained in this site. By visiting this site you agree to the foregoing terms and conditions, which may from time to time be changed or supplemented by WikiMD. If you do not agree to the foregoing terms and conditions, you should not enter or use this site. See full disclaimer.
Credits:Most images are courtesy of Wikimedia commons, and templates Wikipedia, licensed under CC BY SA or similar.
Contributors: Prab R. Tumpati, MD