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
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #picolisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #picolisp
bjorkintosh has quit [Changing host]
bjorkintosh has joined #picolisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #picolisp
bjorkintosh has quit [Changing host]
bjorkintosh has joined #picolisp
bjorkintosh has quit [Quit: Leaving]
seninha has quit [Ping timeout: 245 seconds]
pablo_escoberg has joined #picolisp
pablo_escoberg has quit [Quit: Client closed]
pablo_escoberg has joined #picolisp
<pablo_escoberg> How does one remove an entity from a +List relation in another entity without deleting the original entity?
<abu[7]> You can put> after doing normal list manipulations, or use del>
<abu[7]> An entity is removed with lose>
<abu[7]> But if you say "another" entity, perhaps you mean a +Joint relation?
<abu[7]> (+List +Joint)
<abu[7]> Joints take care of this automatically
<pablo_escoberg> yes, (+List +Joint)
<abu[7]> ok, so if you put> on side, the other is handled automatically
<abu[7]> That's the main purpos of +Joint
<pablo_escoberg> so if I have (class A) (rel B (+List +Joint) C)
<pablo_escoberg> I can do (put 'A 'B X).
<pablo_escoberg> How do I then remove X?
<abu[7]> Your syntax is not correct
<abu[7]> (rel pos (+List +Joint) ord (+Pos))
<abu[7]> List of positions in order
<pablo_escoberg> right, my mistake.
<abu[7]> (put> This 'pos (delete X (: pos)))
<abu[7]> in order
<pablo_escoberg> ah, ok
<abu[7]> or, in position: (put> This 'ord NIL)
<pablo_escoberg> ah, ok.  got it.  TY
<abu[7]> You can also try 'del>'
<abu[7]> you don't need the explicit 'delete' then
<abu[7]> But I use it very seldom
<pablo_escoberg> (del> Ord 'pos X ) ?
<abu[7]> Mainly because these operations are usually done by the GUI which simply calls put>
<abu[7]> yes
<pablo_escoberg> perfect.
<pablo_escoberg> that looks much nicer :).
<abu[7]> ☺
pablo_escoberg has quit [Quit: Client closed]
casaca has quit [Remote host closed the connection]
payphone has quit [Remote host closed the connection]
cpli has quit [Remote host closed the connection]
payphone has joined #picolisp
cpli has joined #picolisp
payphone has quit [Read error: Connection reset by peer]
cpli has quit [Write error: Connection reset by peer]
payphone has joined #picolisp
cpli_ has joined #picolisp
cpli_ is now known as cpli
seninha has joined #picolisp
seninha has quit [Remote host closed the connection]
seninha has joined #picolisp
bjorkintosh has joined #picolisp
bjorkintosh has quit [Changing host]
bjorkintosh has joined #picolisp
<bjorkintosh> so does picolisp have a packaging system or a way to handle extensions?
<abu[7]> Not really, I'm afraid
<abu[7]> Do you plan to provide an extension?
<bjorkintosh> abu[7], I'm fantasizing about a few things.
<bjorkintosh> but who knows? no one ever has time, especially me.
<abu[7]> cool!
<bjorkintosh> btw, what's up with all the discrete simulation examples?
<bjorkintosh> I've never heard of anyone using discrete event simulation to solve a problem. and that's my limitation.
<bjorkintosh> what kind of question does it answer that cannot be obtained any other way?
<abu[7]> I played around, for example with a model railway simulation. Mia wanted to write in her blog about it, but did not find the time yet
<abu[7]> I think currently only the dining philosopers example are public
<abu[7]> concerning a repository, you could try tankf33der's perhaps: https://git.envs.net/mpech/pil21
<abu[7]> Aside from DES, I do use coroutines extensively in applications for printing
<abu[7]> If you like to try the railway stuff, it is available at https://software-lab.de/bahn.tgz
<bjorkintosh> applications for printing?
<abu[7]> No, printing routines in applications
<abu[7]> @lib/svg.l
<bjorkintosh> ah.
<abu[7]> SVG nesting and document pages are not synchronoous
<abu[7]> So a coroutine is used as a generator
<abu[7]> A very simple example (also for printing) is in the "app" demo application
<abu[7]> Or life at https://picolisp.com/app
<bjorkintosh> co-routines! I was thinking generators for some reason.
<bjorkintosh> they're not the same I don't think.
<abu[7]> You *can* use a coroutine as a generator
<abu[7]> Documests are logically nested trees
<abu[7]> *Documents
<abu[7]> Nested structures of blocks and lists of data
<abu[7]> But SVG are nested trees too
<abu[7]> nested tags
<abu[7]> Such things can become quite complex, for example this is printing in a current application: http://pb1n.de/?cbf99f
<abu[7]> 'genBel' is the generator
<abu[7]> The 'let' at the end produces the document
<abu[7]> No need to understand it fully, just to give an idea what I mean
<abu[7]> You see many (yield ..) calls which return the data to the caller
<abu[7]> No, not "return data" but "return control"
<abu[7]> anyway :)
<bjorkintosh> I see.
<tankf33der> successfully fuzzing picolisp binary
<tankf33der> i found a new portal to fun
<tankf33der> code is
<tankf33der> (msg "mike")
<tankf33der> (bye)
<tankf33der> ===
<abu[7]> What kind of "fuzzing" is this?
<tankf33der> i tried input source code
<abu[7]> What purpose?
<abu[7]> Source obfuscation?
<tankf33der> yeap
<abu[7]> And it can be executed?
<tankf33der> i suppose
<tankf33der> first time
<tankf33der> ever
<abu[7]> :)
seninha has quit [Ping timeout: 246 seconds]
seninha has joined #picolisp
pablo_escoberg has joined #picolisp
casaca has joined #picolisp