4 ms·
Actually they pretty much do, much more so now than in 2000. QuickLisp has been a real game-changer.
by lisper 5y ago
Actually they pretty much do, much more so now than in 2000. QuickLisp has been a real game-changer.
- nabla9 5y agoHow many of those 1500 QuickLisp libraries work together without extra work? I seriously tried to use Common Lisp for numerical programming 10 years ago. It was faster and would have been better platform for numerical programming than Python, R or Julia. Just a great language. (Ross Ihaka had plans to port R into Common Lisp to make R fast at one point) The real problem was the lack of convergence of data structures and conventions above the language standard. Python has pandas tables and numpy arrays. R has Data frame. Every numerical library for CL had their own conventions, and ways to implement the basic data structure, Some used lists, some just arrays, some had list of vectors, classes, structs, property lists. The impedance mismatch was not worth it. Either implement numpy equivalent on your own or half of your code is data massaging data between libraries. -- Perlis epigram: "9. It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures."
- varjag 5y ago> How many of those 1500 QuickLisp libraries work together without extra work? I'm not sure what kind of question is that. A whole bunch of them? Certainly not worse ratio than many contemporary or even modern languages. There's a lot less friction to get any random GitHub CL project working than say a Swift one.
- nabla9 5y ago> Certainly not worse ratio than many contemporary or even modern languages CL has no standardized extensible abstraction classes for basic collection types. Almost all languages have that because it's so essential for communicating between libraries. I'm relatively sure Swift has one Only other language similar to CL in this regard is C. And you can't ask if what you have is mapping of symbol number pairs. CL has multiple libraries that fix this problem but no significant convergence has emerged. For simple key value pairs or maps you must keep track and convert between ;; property list (implicit type) (type-of '(foo 1 bar 2 baz 3)) => CONS ;; assoc-list (implicit type) (type-of '((foo . 1) (bar . 2) (baz . 3))) => CONS ;; list of lists (implicit type) (type-of '((foo 1) (bar 2) (baz 3))) => CONS ;; hash-table (explicit only about being hash table) (type-of #<HASH-TABLE :TEST EQL :COUNT 3 {10018A8023}>) => HASH-TABLE)
- dreamcompiler 5y ago>Either implement numpy equivalent on your own or half of your code is data massaging data between libraries I haven't tested this but here you go: https://github.com/numcl/numcl https://github.com/numcl/numcl
- jhgb 5y ago> How many of those 1500 QuickLisp libraries work together without extra work? I'm pretty sure that due to the curated nature of code in QuickLisp, there's really no problem with that. If something doesn't load properly, it's a bug that you should report.