5 ms·
Is the big underlying motive for LISP its connection with symbolic AI?
by yters 6y ago
Is the big underlying motive for LISP its connection with symbolic AI?
- Jtsummers 6y agoFirst, I still find it very jarring to see "LISP" written that way when referring to Common Lisp, and most other languages in the Lisp family, as "Lisp" has been the common way of writing it for a very long time. That styling, now, is mostly found in older texts on the subject or when talking about LISP and LISP 1.5 and a few other specific implementations. Second, Common Lisp is a general purpose, multiparadigm language. There's a lot to like about it. If you want to implement conventional procedural algorithms, the language is well-suited to writing in that style. If you want to adopt a more functional and recursive (versus iterative) style, it is similarly well-suited (though somewhat implementation dependent as CL, unlike Scheme, does not mandate tail call elimination, which can bite you in performance). If you want to write in an OO-style, it has a way to do that (though it is different than the OO-styles many people are familiar with so takes some time to learn). And if you like writing DSLs (but don't want to implement a full parser or an interpreter but would rather have something compiled for better performance), it's very well-suited for it. Third, while it was commonly used for symbolic AI, it is not restricted to that domain. But, if that's what you want to use it for, you should look into the book Paradigms of AI Programming by Norvig (now available for free online) which is pretty much just about implementing now classic symbolic AI programs in CL.
- mepian 6y agoNot anymore, today Common Lisp is generally a very nice language that balances dynamicity and performance quite well, and especially shines in interactive (or REPL-driven) development: https://mikelevins.github.io/posts/2020-12-18-repl-driven/ https://mikelevins.github.io/posts/2020-12-18-repl-driven/
- User23 6y agoAlso popular implementations do some cool things. The compiler section in the SBCL manual[1] has good details. SBCL's type inference is powerful and you can also convince yourself it's actually working by looking at the output of DISASSEMBLE. [1] http://www.sbcl.org/manual/index.html http://www.sbcl.org/manual/index.html
- wry_discontent 6y agoClojure is my only serious exposure to lisp, and I get jealous when hearing about features like a `breakloop` in Common Lisp.
- codr7 6y agoWhy not give it a spin? There is plenty more to discover in Common Lisp, Clojure has some nice tricks but it's a faint echo as far as raw power goes. http://www.sbcl.org http://www.sbcl.org
- vseloved 6y agothere's an interesting recent video on the differences between Cl and Clojure here: https://www.youtube.com/watch?v=44Q9ew9JH_U https://www.youtube.com/watch?v=44Q9ew9JH_U