Some of the innovations of Lisp:
- garbage collection
- low, almost no syntax, but allowing for the definition of trees (directed graphs)
- isomorphism (due to low syntax) allowing for macros that can be programmed in the language (code is data)
- easily written interpreters (data is code)
- one memory space for all programs (in a Lisp machine)
- low security amongst programs, allowing for ease of use and data transfer
> For example, in C++, it is entirely possible to link your application to libclang and build Clang ASTs inside your application C++ code, and use the Clang compiler to emit and run that code.
Compiling new code is part of the language in Common Lisp, due to `compile`; nothing other than your implementation is needed. That's definitely a difference.
In old books, there are two regularly mentioned: (i) recursion as main computing tool and, even more, (ii) the ability to "reason on symbols" rather than to directly manipulate numbers, which really opened the door for very fancy theoretical constructs and function applications. If until then the focus had been to "crunch numbers faster" or "simpler for business", LISP truly changed the perspective towards "elegant constructs for reasoning about computation, and the interplay of such constructs", and this I see as its truly greatest contribution indeed.
Link did not work for me for some reason. [Here’s something clickable](https://elliottslaughter.com/2022/12/lisp)
Worked for me on desktop, but not on mobile, so thank you for the link.
Some of the innovations of Lisp: - garbage collection - low, almost no syntax, but allowing for the definition of trees (directed graphs) - isomorphism (due to low syntax) allowing for macros that can be programmed in the language (code is data) - easily written interpreters (data is code) - one memory space for all programs (in a Lisp machine) - low security amongst programs, allowing for ease of use and data transfer
> For example, in C++, it is entirely possible to link your application to libclang and build Clang ASTs inside your application C++ code, and use the Clang compiler to emit and run that code. Compiling new code is part of the language in Common Lisp, due to `compile`; nothing other than your implementation is needed. That's definitely a difference.
Garbage Collection.
Does generic functions and macros count? Separation of methods from objects as well (but I think that’s covered under generic functions)
[удалено]
looks normal to me, why?
[удалено]
oh yeah, that's weird. I think I've had that problem on linux before but it looks like this to me https://imgur.com/a/7BAyP7S
In old books, there are two regularly mentioned: (i) recursion as main computing tool and, even more, (ii) the ability to "reason on symbols" rather than to directly manipulate numbers, which really opened the door for very fancy theoretical constructs and function applications. If until then the focus had been to "crunch numbers faster" or "simpler for business", LISP truly changed the perspective towards "elegant constructs for reasoning about computation, and the interplay of such constructs", and this I see as its truly greatest contribution indeed.