8 ms·
Before Python became ML's darling, there was Lush: Lisp Universal SHell by none other than Yann LeCun and Leon Bottouk[1], and I thought my Lisp knowledge was g
by eggy 5y ago
Before Python became ML's darling, there was Lush: Lisp Universal SHell by none other than Yann LeCun and Leon Bottouk[1], and I thought my Lisp knowledge was going to finally pay off ;) I've since moved on to J and APL. SBCL is amazing and aside from calling C directly, it is still very fast. Python is slow without its specialized libraries from the C-world, but SBCL produces short, readable code that is pretty efficient. There ECL[2] for an embedded Lisp, or uLisp[32] for really small processors like the ESP chips.
[1] http://lush.sourceforge.net/ http://lush.sourceforge.net/
[2] https://common-lisp.net/project/ecl/ https://common-lisp.net/project/ecl/
[3] http://www.ulisp.com/ http://www.ulisp.com/
- pvitz 5y agoI am using J on and off, but I am not aware of a ML package for it. Are you writing all algorithms yourself or could you recommend a package?
- ruste 5y agoI'd also like to know. I'm considering writing some for fun in GNU APL right now.
- liveranga 5y agoThere's a handful of resources around that look fun though I haven't dug into them yet. There's this on the J wiki: https://code.jsoftware.com/wiki/User:Brian_Schott/code/feedforwardNN/code/feedforwardNN https://code.jsoftware.com/wiki/User:Brian_Schott/code/feedf... And there's this YouTube series for APL: https://youtube.com/playlist?list=PLgTqamKi1MS3p-O0QAgjv5vt4NY5OgpiM https://youtube.com/playlist?list=PLgTqamKi1MS3p-O0QAgjv5vt4...
- eggy 5y agoI have a bunch of links to ML material for either APL or J. I don't know of any particular library for J. J is interpreted, so it is not as fast as other implementations. I am mainly using it to experiment on concepts and teach myself more ML in J because of the iterative nature of the REPL, and the succinct code. I can keep what's going on in my head, and glance at less than 100 lines, usually 15 lines, of code to refresh it. There is a series of videos of learning neural networks in APL cited by others here on this thread. Pandas author, Wes McKinney, cited J as an influence in his work on Pandas. Extreme Learning Machine in J (code and PDF are here too): https://github.com/peportier/jelm https://github.com/peportier/jelm Convolutional neural networks in APL (PDF and video on page): https://dl.acm.org/doi/10.1145/3315454.3329960 https://dl.acm.org/doi/10.1145/3315454.3329960 A DSL to implement MENACE (Matchbox Educable Noughts And Crosses Engine) in APL (Noughts and Crosses or Tic-tac-toe): https://romilly.github.io/o-x-o/an-introduction.html https://romilly.github.io/o-x-o/an-introduction.html
- rscho 5y ago> J is interpreted, so it is not as fast as other implementations Which implementations are you comparing J to? To my knowledge, all of APLs, K, J are interpreted. BQN is compiled, but still very new. I also know that Dyalog was experimenting on a byte code compiler. I don't think there exists convincing benchmarks comparing those languages.
- eggy 5y agoYes, not clear on my part. I meant to other ML languages, not other array languages. It's amazing the speed you get from J as an interpreted language; it's been honed by a bunch of clever people over the last few decades.
- protomikron 5y agoWhy did it not catch on, though? Python was already well known as a "scripting" and server-side web development language in the early 2000s, but it's commonly mentioned that it really exploded in the 2010s, where it was the implementation language for several scientific packages, most notably the machine learning eco system. It seems that the language really found a local optimum that adheres to many different people across disciplines.
- kragen 5y agoLush's heyday was the 01990s, and it's pretty much only useful for "scientific computing", which has a big overlap with "machine learning". Also, it's a Lisp. Python has more readable syntax and was used for all sorts of things even before Numpy existed.
- thewakalix 5y ago> 01900s Preparing for Y10K? That's exceptionally long-termist.
- MonkeyClub 5y agoCan't even make an octal joke with that 9 in there...
- kragen 5y agoHey, 9 is an octal digit in K&R C!
- stewbrew 5y agoI think we have to distinguish between languages that use s-expressions and lisps. Almost all languages have some sort of preprocessor that make it look like lisp but that doesn't turn it into lisp. From what I vaguely remember, lush lacked some of the defining qualities of a lisp.
- 5y ago