beneroth changed the topic of #picolisp to: PicoLisp language | The scalpel of software development | Channel Log: https://libera.irclog.whitequark.org/picolisp | Check www.picolisp.com for more information
rob_w has joined #picolisp
<Regenaxer> razzy: I think my definition from yesterday was right. Perhaps add "side effect"
<Regenaxer> So a destructive operation is:
<Regenaxer> Modifying *list* structures as a *side* effect
mtsd has joined #picolisp
mtsd has quit [Quit: Leaving]
mtsd has joined #picolisp
<razzy> Regenaxer: I do not really care about names. As long as we have other name for all "mutating" operations I can agree with you. I do not think your idea is major oppinion of general programmers, but majority is often wrong :).
<razzy> Side effect is good definition of your idea
<Regenaxer> I think my definition is like that of comon lisp and emacs lisp
<Regenaxer> But which operations are *not* mutating something??
<razzy> Regenaxer: example would be (reverse) (car)
<Regenaxer> ok, 'car' yes. But 'reverse' is modifying
<Regenaxer> modifies heap and stack
<razzy> I am not avare
<Regenaxer> it can even trigger garbage collection with *lots* of modifications ;)
<Regenaxer> So you mean "modifies user-visible data"
<razzy> after it is done,symbol has same value.
<Regenaxer> Anyway, functions which modify something need no special name
<Regenaxer> not critical
<razzy> It would help me.
<Regenaxer> (reverse) does not involve any symbol
<Regenaxer> What would it help?
<razzy> I cannot talk for others.
<Regenaxer> all function calls, 'let', 'for' etc
silasfox has joined #picolisp
<Regenaxer> all modify symbol values
<Regenaxer> Hi tankf33der!
<tankf33der> Simplest code to demo cut
<tankf33der> hi all
<Regenaxer> What does it demo?
<Regenaxer> that the value of L changed?
<tankf33der> and how it changed
<Regenaxer> yeah
<Regenaxer> set to the cdr of the value
<Regenaxer> So 'cut' is not destructive
<Regenaxer> it does not change a list
<Regenaxer> "Modifying *list* structures as a *side* effect"
<Regenaxer> both must be given
<Regenaxer> modifying a symbol value is not destructive
<Regenaxer> An (cut 2 (cdr (1 (2 3 4 5 6) 7))) -> (2 3) also is not destructive, because it is not a side effect
<Regenaxer> it is the desired effect
silasfox has quit [Quit: Connection closed]
<razzy> Regenaxer: I will mark mutating functions on my own, no big problem.
<Regenaxer> good
<razzy> tankf33der: I like the examle, makes it more clear to me.
silasfox has joined #picolisp
<Regenaxer> Then better mark non-mutating functions, no?
<razzy> yes, that what i meant
<Regenaxer> yes, looking at the memory pointer with 'adr' is the ultimate proof
silasfox has quit [Quit: Connection closed]
<tankf33der> razzy: check this out
<tankf33der> If you understand this then you safe
<Regenaxer> oh, I faintly remember
silasfox has joined #picolisp
<razzy> tankf33der: yes, I wanted that example for a long time to build my skiplist :) thank you
<razzy> tankf33der: example not really working. Lst is NIL. I think i know what doubly linked list means in theory
<razzy> ah
<razzy> tankf33der: umm, example seems broken to me. I am not safe :)
<tankf33der> razzy: sure, this is the most advanced pil code ever.
<razzy> tankf33der: (setq *DLst (2list 'was 'it 'a 'cat 'I 'saw)) gives segmentation fault
<razzy> which is not what i expected as example?
wineroots has joined #picolisp
razzy has quit [Quit: Lost terminal]
mtsd has quit [Ping timeout: 248 seconds]
mtsd has joined #picolisp
razzy has joined #picolisp
mtsd has quit [Quit: Leaving]
rob_w has quit [Remote host closed the connection]
silasfox has quit [Quit: Connection closed]
f8l has quit [Remote host closed the connection]
f8l has joined #picolisp
razzy has quit [Ping timeout: 268 seconds]
razzy has joined #picolisp
razzy has quit [Ping timeout: 245 seconds]
razzy has joined #picolisp
razzy has quit [Ping timeout: 256 seconds]
razzy has joined #picolisp
razzy has quit [Ping timeout: 245 seconds]
razzy has joined #picolisp
razzy has quit [Ping timeout: 272 seconds]
mtsd has joined #picolisp
razzy has joined #picolisp
<razzy> what is EOF overrun error?
<razzy> solved
mtsd has quit [Quit: Leaving]
<Regenaxer> good :)
<razzy> I am able to iterate in picolisp towards a working SW. I rarely know exactly why it is working the way it is working :D.
<Regenaxer> Just go on! :)
<Regenaxer> Good night!
<beneroth> razzy, EOF overrun is nearly always missing closing parenthesis
<beneroth> literally "run over End-of-File when EOF was not yet to be expected"