3 ms·
1. CL supports multiple dispatch, but its built-in numerical operators are not extensible. There are two libraries, GENERIC-CL and CL-GENERIC-ARITHMETIC, that p
by reikonomusha 4y ago
1. CL supports multiple dispatch, but its built-in numerical operators are not extensible. There are two libraries, GENERIC-CL and CL-GENERIC-ARITHMETIC, that put wrappers over existing operators... but you have to use those wrappers.
2. Matrices and linear algebra has only rudimentary support in Lisp. It's better than nothing but it's worse than NumPy. MAGICL, Numericals, LISP-STAT, and NUMCL are four such libraries.
3. To my knowledge, minimal/toy implementations of auto diff exist in Common Lisp, but nothing big or serious. Scheme was actually a real hotbed for autodiff research, by Pearlmutter, Siskind, et al.
4. Two of the historically best computer algebra systems are written in Common Lisp: Maxima (derived from MACSYMA of the old days) and FriCAS (derived from AXIOM of the old days). These systems basically build a computer algebra programming language and engine on top of Lisp.
- ogogmad 4y agoThank you. That was very helpful. Regarding 4, I'd like to use these CASes from within a library. A bit like how you can use Sympy as a library within Python.
- reikonomusha 4y agoIt's possible, especially with Maxima, but it feels a little clunky honestly. Incredibly powerful, but clunky.