5 ms·
PicoLisp Tutorials
- tankfeeder 3y agoModern picolisp written on raw llvm-ir.
- LeafItAlone 3y agoI was briefly excited that this was Lisp for the Raspberry Pi Pico, but it is not.
- rwmj 3y agoI guess that's microlisp: http://www.ulisp.com/show?3M http://www.ulisp.com/show?3M
- rcarmo 3y agoYes: http://www.ulisp.com/show?3KN3 http://www.ulisp.com/show?3KN3
- actionfromafar 3y agoIt would easily fit, though.
- matheusmoreira 3y ago> Dual-core Arm Cortex M0+ processor, flexible clock running up to 133 MHz > 264kB of SRAM, and 2MB of on-board flash memory I wonder if my lisp can run on that... It targets freestanding Linux environments and is able to manage statically allocated memory all by itself. The hash table of system calls alone took up about 200 kB of memory last time I measured it but if I replaced those tables with direct hardware integration...
- DonaldFisk 3y agoThe problem with Lisp is that there are different dialects, and if you program in more than one, you need to be aware of the differences between them. It would be nice to be able to switch between them on different projects without being caught out by their differences before getting used to the other dialect, or having to context-switch. It would also be nice to port programs from one dialect to another without major editing. But Picolisp is another dialect, which on the surface is quite different from Common Lisp and Scheme/Racket and, I assume, Clojure. If you want to keep your Lisp implementation small, why not just implement a subset of Common Lisp, or build/use a Scheme variant?
- monsieurbanana 3y agoLisp is a family of languages, not any single one. There's (thankfully, lisps needs innovation like everything else) room for different types. In the C family for example, you have both C and Javascript. > It would also be nice to port programs from one dialect to another without major editing If the languages are the same, they wouldn't be different dialects, they would be the same language, so porting them doesn't make much sense. I think the closest thing to what you're describing is Clojure, where you can swap the targeted environment (JVM if you're working on a server, babashka if you're making a script, javascript if it's a web app, dart/flutter if you're making mobile apps, etc...)
- dragonwriter 3y ago> In the C family for example, you have both C and Javascript. There is no reasonable sense in which JavaScript is in the “C family”. It's not really even in the broader Algol family that C is in, being most closely related to Self and Scheme (the latter being in the Lisp family.)
- monsieurbanana 3y agoI just took a random example from the wikipedia page of C languages: https://en.wikipedia.org/wiki/List_of_C-family_programming_languages https://en.wikipedia.org/wiki/List_of_C-family_programming_l... I don't think that takes away from my point, in each family of programming languages you can find very different ones and lisp is not a language but a family of languages. Besides using S-expressions, I don't know what else you would need to be considered a Lisp.
- DonaldFisk 3y agoIf you know C, you don't need to learn a new syntax if you learn C++, Java, C#, or Javascript, except where their semantics is different from C. In those languages, this was a good design choice, which encouraged people to adopt those languages.
- tmtvl 3y agoA slight nitpick, but I like how we went from Scheme's "define" over the classic "defun", through Clojure's "defn" and Bel's "def" to PicoLisp's "de". Looking forward to seeing the next S-expression language defining functions with "d".
- mark_l_watson 3y agoNice collection of tutorials! My only gripe about picolisp is that it really can’t run on macOS, but that is only a tiny inconvenience.
- actionfromafar 3y agoEdit: it works on MacOS!
- mark_l_watson 3y agoThanks!
- eggy 3y agoI love(d) PicoLisp. I have run Windows, Linux (many flavors on many machines), and MacOS, but my working OS is Windows, and I could not get the x64 PicoLisp running on Windows back then without using Cygwin or MinGW. I can run it on WSL[1], however, it still requires a POSIX environment. Is there a way to compile a Windows binary without the POSIX required for a working PicoLisp environment? I know it switched to an LLVM-IR base, but I don't know enough about the POSIX dependencies and creating a Windows binary. I love PicoLisp's succinctness (I program in J and APL, learning BQN), practicality with a Prolog and built-in database. It has certainly been around for a while like me; I've been programming since 1978. [Edit/Add] I really liked Shen[2], a Lisp built on Kλ, a small Lisp of 46 or so functions, which allows Shen to be ported to many platforms and other languages. Shen also has a Prolog, pattern matching, optional lazy evaluation and static type checking, and more. For me, it is between Shen and PicoLisp to displace my use of SBCL. [1] https://picolisp.com/wiki/?WSL [2] https://shenlanguage.org/index.html
- actionfromafar 3y agoWouldn’t surprise me if it could be made to work in Justines “APE”. I ported PicoLisp to Windows many years ago by removing some POSIX stuff, don’t remember what exactly. But that was when it was written i C and 32 bit. I think it’s more of an effort missing to port it, the core is extremely small.