freenode/#lisp - IRC Chatlog
Search
23:48:44
mfiano
zero-length PLNs are pointlessly valid it seems :) (:local-nicknames (#: #:alexandria))
0:08:23
Nilby
I make the same vow as stylewarning, but irrelevantly, since I've classic-lisp-cursed myself to live out my years in 90% oblivion, and I'll never write a book, blog, or be employed.
3:25:22
pfdietz
mfiano: the package with zero-length name is valid. Escape the package name with ||. So: ||::|| is the zero-length symbol in the zero-length package.
3:30:10
aeth
And this also seems to work as an alternative: (defpackage #: (:use #:cl) (:export #:))
9:29:21
Nilby
I'm not sure what you mean, but one can do something like this: (subseq '#1=(#\x . #1#) 0 20))
9:39:58
ldb
Nilby: circular buffer is like an array with fill pointer that when gets full it overwrites the mose old entry
9:43:17
ldb
i guess it would like a queue but the very first element automatically discarded when the length exceeded certain amounts
9:44:16
White_Flame
ldb: what's the difference between that, and a pure functional array where you simply drop off older entries without overwriting them?
9:45:20
White_Flame
and I'd say only drop off old nodes if they're fully passed by, don't bother dropping individual entries, and store a first-entry offset
10:03:30
Nilby
A non-mutative circular buffer would just eat memory, so you're actually just making the garbage collector do the mutative circularity work.
10:43:42
White_Flame
ldb: since the root node of the tree has to change every time there's a change in the functional structure, the index can live there
11:14:23
White_Flame
but if you're just using a plain tree without multi-element nodes, then pruning old values may or may not amortize, unless you have a special function for it