zwr has quit [Read error: Connection reset by peer]
zwr has joined #commonlisp
pkal_ has joined #commonlisp
pkal has quit [Ping timeout: 248 seconds]
pkal_ is now known as pkal
Pixel_Outlaw has joined #commonlisp
<Pixel_Outlaw>
Ahoy all. Is it safe to mutate a quasi-quoted list? I know you're not supposed to for standard quoted list literals.
scymtym has quit [Read error: Connection reset by peer]
scymtym has joined #commonlisp
olnw has joined #commonlisp
kyoji has quit [Read error: Connection reset by peer]
random-nick has quit [Ping timeout: 265 seconds]
kyoji has joined #commonlisp
decweb has quit [Ping timeout: 260 seconds]
<bike>
Pixel_Outlaw: no, it is not safe.
foretspaisibles has quit [Remote host closed the connection]
<Pixel_Outlaw>
bike, Thanks.
<Pixel_Outlaw>
Really then you can say that spliced lists can't be used in the full capacity of lists made with the LIST function?
<Pixel_Outlaw>
Hmm, I wonder if I've made some bad macros in the past then.
foretspa1sibles has joined #commonlisp
akoana has quit [Quit: leaving]
decweb has joined #commonlisp
dostoevsky has quit [Quit: Leaving]
<White_Flame>
technically, mutating the 3rd+ elements of `(1 2 ,@(runtime-generated-things)) should be safe, just not anything in literally specified cells
<beach>
I don't see how the first and the second cell could be literally specified. The second cell must be created with its CDR generated at run time, and the first cell must have the second cell in its CDR.
decweb has quit [Ping timeout: 276 seconds]
<White_Flame>
oh, I guess that's true
<White_Flame>
basically any literal sublist would be off-limits to modification, while any concatenated non-tail portion of a list would be dynamically allocated
<White_Flame>
sublist = a full list value somewhere, not a span of a larger list
<aeth>
so the quoted list in this isn't literal? `(progn '(1 2 ,@(runtime-generated-things)))
<White_Flame>
(dyn dyn (lit lit) ,@(...) lit lit)
<White_Flame>
right
<White_Flame>
a list containing a dynamically generated list element would have to be copied/appended/etc
<White_Flame>
transitively
<White_Flame>
however, that's just the practice of the matter. the spec is probably more conservative
amb007 has quit [Ping timeout: 265 seconds]
<Pixel_Outlaw>
So ` makes kind of a mess then.
<White_Flame>
dynamic allocation is contagious within `
<White_Flame>
any fully literal list however should remain literal and not be mutated
<White_Flame>
unless used by ,@ ;)
<White_Flame>
in a non-tail position (1 2 ,@(3 4 5) 6)
<White_Flame>
so yeah, rules upon rules. Don't mutate anything ;)
amb007 has joined #commonlisp
<aeth>
this sort of thing is best done immutably, anyway
<Pixel_Outlaw>
Ok, that's fair.
<Pixel_Outlaw>
So, for example if I have a list of card faces like `(A K Q J 1 2 3 4 5 6 7 8 9 10) I should not use stuff like remove-if
<Pixel_Outlaw>
Sorry, delete-if
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #commonlisp
triffid has quit [Remote host closed the connection]
Pixel_Outlaw has quit [Remote host closed the connection]
pve has joined #commonlisp
gorignak has joined #commonlisp
triffid has joined #commonlisp
mishoo has joined #commonlisp
d4ryus has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #commonlisp
chomwitt has quit [Ping timeout: 272 seconds]
d4ryus has quit [Quit: WeeChat 4.2.2]
d4ryus has joined #commonlisp
d4ryus has quit [Client Quit]
d4ryus has joined #commonlisp
cmack` has joined #commonlisp
cmack has quit [Ping timeout: 260 seconds]
mgl has joined #commonlisp
Alfr is now known as Guest3795
Guest3795 has quit [Killed (zinc.libera.chat (Nickname regained by services))]
Alfr has joined #commonlisp
shka has joined #commonlisp
alendvai__ has joined #commonlisp
xaltsc has joined #commonlisp
amb007 has quit [Ping timeout: 264 seconds]
wacki has joined #commonlisp
_cymew_ has joined #commonlisp
edgar-rft_ has joined #commonlisp
svm has joined #commonlisp
edgar-rft` has quit [Ping timeout: 248 seconds]
msv has quit [Ping timeout: 272 seconds]
svm is now known as msv
dino_tutter has joined #commonlisp
markb1 has quit [Ping timeout: 244 seconds]
markb1 has joined #commonlisp
_cymew_ has quit [Quit: Konversation terminated!]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mountainman1312 has quit [Remote host closed the connection]
wacki has joined #commonlisp
xlarsx has joined #commonlisp
xlarsx has quit [Remote host closed the connection]
srji_ has quit [Remote host closed the connection]
dra has joined #commonlisp
dra has quit [Changing host]
dra has joined #commonlisp
mwnaylor has quit [Ping timeout: 276 seconds]
xlarsx has joined #commonlisp
attila_lendvai_ has joined #commonlisp
xlarsx has quit [Ping timeout: 248 seconds]
alendvai__ has quit [Ping timeout: 265 seconds]
wacki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]