#PicoLisp

Christian Rueschcr@bsd.network
2025-05-05

@thinkberg I am a huge fan of #PicoLisp. Small, fast, and pragmatic. The assembler among Lisps. :-) Unfortunately, it is not available in the #OpenBSD ports. However, I have written a short manual: rt.fm/picolisp.txt

2025-04-06

@mousebot ... unless you take FEXPRs like in #PicoLisp - they are better than #Lisp macros because they are normal functions, more readable, and can be debugged (e.g. single-stepped).

2025-04-03

#PicoLisp version 25.3 is now in Debian testing

#Lisp

2025-04-02

@tiang I write 90% of my scripts in #PicoLisp.

2025-03-21
2025-03-20

@symbolics @weekend_editor @rzeta0 In #PicoLisp probably the shortest way is with 'cnt':

: (cnt t '(a b c d))
-> 4

('t' is a function which always returns 'T')

2025-03-19

@rzeta0 In #PicoLisp it is 'conc'. IIRC that is 'nconc' in CL

2025-03-18

@pedromj @rzeta0 I think so too. Tail recursion is just an obfuscated loop. That's why I hesitated nearly 40 years to implement it in #PicoLisp.

2025-03-17

@rzeta0 Oops, found a typo. The last 'cadr' must be 'caddr' :

pb1n.de/?3c4b41

Did not test all braches ;)

#PicoLisp #Lisp

GripNewsGripNews
2025-03-16

🌗 PicoLisp Wiki: 文件
➤ PicoLisp 資源豐富,從基礎教學到進階應用皆有涵蓋。
picolisp.com/wiki/?Documentati
PicoLisp Wiki 包含豐富的程式碼和知識,在這裡可以找到從入門到高手的指導、教學和範例,並鼓勵社羣分享成果。
+ 我對 PicoLisp 的這個 Wiki 的組織結構印象深刻,提供了很全面的資訊。
+ 這份摘要簡潔明瞭地展示了 PicoLisp Wiki 的重要性和價值,吸引人去深入瞭解。
資源

N-gated Hacker Newsngate
2025-03-16

🌐 Ah yes, the PicoLisp—a veritable treasure trove of code so scattered across the interwebs that someone just had to corral it into yet another nobody asked for. 📚✨ Dive into this endless abyss of "coherent" and maybe, just maybe, you'll emerge as a wizard in a language nobody uses. 🧙‍♂️🔮 Good luck, brave soul!
picolisp.com/wiki/?Documentati

2025-03-15

@simon_brooke Testing bignums in a REPL is noisy due to the huge outputs. In #PicoLisp I then do things like

: (bench (fact 10000)) T
0.163 sec
-> T

because only the result of the last expression is printed

2025-03-14

@Regenaxer @borkdude @vindarel Thanks! Right, so my comparable in-REPL times for iterative factorial 1000 are

#PicoLisp: (bench (apply * (range 1 1000)))
0.000 sec
#Clojure: user=> (time (apply *' (range 1 1000)))
"Elapsed time: 2.428199 msecs"
#SBCL: CL-USER[1]: (time (apply #'* (alexandria:iota 1000 :step 1)))
Evaluation took:
0.000 seconds of real time
0.000015 seconds of total run time (0.000000 user, 0.000015 system)
100.00% CPU
45,990 processor cycles
0 bytes consed

#Lisp

2025-03-14

@simon_brooke @borkdude @vindarel It is the #PicoLisp 'bench' function:

$ pil +
: (bench (do 9999999 (* 3 4)))
0.209 sec
-> 12

2025-03-14

@borkdude @vindarel @Regenaxer #PicoLisp doesn't have macros, by design. Its `time` function returns the time of day. So while there may be a way of timing a computation in the REPL, I've not found it yet.

#Lisp

software-lab.de/doc/refT.html#

2025-03-14

@borkdude @vindarel @Regenaxer Again, this is true and fair. I haven't yet learned enough #PicoLisp to do a comparison timing in the REPL.

What's interesting (to me) is that PicoLisp is also doing recursive computations at very high speeds. I need to explore further but it's an *extremely* impressive system, and I'm amazed I wasn't aware of it before today.

2025-03-14

@vindarel That's true. The startup time issue is particularly harsh on #clojure, and @borkdude's #Babashka would probably do a lot better.

But (a) this is very rough timing, and (b) startup time is some sort of proxy for the compactness of the runtime system; and
(c) the thing that's still astounding me is that #PicoLisp is (sort-of) an interpreter, while all the others execute compiled code, so bloody should be faster!

#Lisp

2025-03-14

@simon_brooke I would also say that bignums implemented internally in cells are the way to go. I did so in #PicoLisp too. #lisp

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst