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
seteeri has quit [Quit: Leaving]
viaken2 has quit [Quit: reboot]
viaken has joined #picolisp
theruran has quit [Ping timeout: 245 seconds]
theruran has joined #picolisp
brandelune has joined #picolisp
brandelune has joined #picolisp
brandelune has quit [Client Quit]
brandelune has joined #picolisp
peterhil has quit [Ping timeout: 260 seconds]
peterhil has joined #picolisp
hunar has joined #picolisp
<hunar> Hello :D I was gone for a loooong time, I hope you are all good. The initial project that I wanted to make with picolisp (ERP software) is canceled because I finally found the free software that I was looking for (manager.io)... I have a question Regenaxer, is this page out of date (picolisp.com/wiki/?usingEdit) the (edit) function doesnt
<hunar> exist in pil21
<Regenaxer> Hi hunar! Nice to see you back! :)
<Regenaxer> Yes, (edit) is replaced by vip
<Regenaxer> Calling 'vi' with a list of symbols
<Regenaxer> or 'v' as a non-evaluating shortcut
<hunar> Oh, I thought vip is just for files and functions
<Regenaxer> yeah, symbols in general (value and properties, just like 'edit' was
<hunar> Thanks :D I'll continue reading that page
<Regenaxer> :)
<hunar> I always forget which one of these I should be using, (v X) (v 'X) (vi X) (vi 'X) I try them one by one until I see something other than a blank screen.
<hunar> Oh, web.libera.chat turned my text into emoji
<Regenaxer> 'v' is non-evaluating :)
<Regenaxer> haha
<Regenaxer> I think it is your client, not libera
<hunar> Yes :)
<Regenaxer> I see plain ':' and ')' here
<Regenaxer> so it is only your display
<Regenaxer> no emoji there
<hunar> Aaah, Its ok then, only my web client :)
<hunar> But why wouldn't (v 'X) work. And when opening a file, "text" evaluates to itself right? so why (v "text") works but (vi "text") wouldn't work
rob_w has joined #picolisp
<Regenaxer> (zero "text") (v "text")
<Regenaxer> You edit the *symbol* "text", not the file
<Regenaxer> (vi "text") edits the file
<hunar> Oh, My head isn't working properly today... I need to warm up the picolisp part of my brain
<beneroth> Hi hunar! Welcome back!
<beneroth> tell me more about manager.io
<beneroth> looks pretty good
<beneroth> ah free, but proprietary?
rob_w has quit [Remote host closed the connection]
<beneroth> so free beer, but no free customizing
<hunar> Hi beneroth :D , Its free as long as you use it alone on a single computer with one user, it has an active community.. For me, the features are 90% great and 8% small workarounds, the other 2% are features that people make addons to achieve it
<hunar> The interface is muuuch more intuitive than gnucash
<beneroth> but no source code available, right?
<hunar> Its close sourced yes
inara has quit [Quit: Leaving]
inara has joined #picolisp
cranium has joined #picolisp
<hunar> I cant seem to find how to use picolisp's database, I understand this much below, but cant find a short (single function call) way to read the data back.. Plus how can I browse through the data using vip like (picolisp.com/wiki/?usingEdit) mentions? I tried (v *DB) but didn't find what I want
<hunar> (class +User +Entity)
<hunar> (rel name (+String))
<hunar> (pool "users.db")
<hunar> (new! '(+User) 'name "Hunar")
<beneroth> (collect 'name '+User)
<beneroth> (db 'name '+User "Hunar")
<beneroth> (v *DB) should show you the database root node {1}
<beneroth> it has a property for each index and entity
<Regenaxer> 'collect' will not work here, as 'name' has no index
<beneroth> ah
<beneroth> yes right
<Regenaxer> (rel name (+Ref +String))
<beneroth> hunar, you don't need a primary key, but having none index at all makes it kinda meaningless
<Regenaxer> Hunar, I would recommend Mia's blog https://picolisp-blog.hashnode.dev
<Regenaxer> She explains also the DB in detail
<beneroth> T
<beneroth> good explanations
olaf_h has joined #picolisp
<Regenaxer> hunar: So (v *DB) was not wrong, but then you need to press K on the symbol to dig into it
<Regenaxer> or immediately start with (v {1})
<hunar> Ah, now I see how (v *DB) should work, but does it show the actual data? because I only see structures as I browse with K and Q
<Regenaxer> yes, 'v' shows the symbol(s) you give it
<Regenaxer> here '*DB'
<Regenaxer> *DB is a global pseudo-constant always pointing to {1}
<Regenaxer> In the above case, without any index, {1} will be empty anyway
<Regenaxer> Probably {2} was created
<Regenaxer> but it "hangs free"
<Regenaxer> You can access it with (v {2}) or (show '{2})
<Regenaxer> If there are indexes, the roots of their trees are in {1}
<Regenaxer> Must go, afp
<hunar> AAA now I know how to navigate :D
<hunar> Back to collect, I added +Ref, and collect returns -> ({2} {5})
<hunar> didn't realize there was Mia Temma tutorials :) It looks great, I'll check it out soon
<hunar> Ah, I have to (show '{2}) :) Mia's tutorials are very clear.. good for me
brandelune has quit [Quit: This computer has gone to sleep]
<hunar> last question: I MUST have the class and relation definitions to read a database?
<Regenaxer> I'm still out, so short answer: No ;)
<Regenaxer> you can read on the low level
<Regenaxer> only bare external symbols
<Regenaxer> Info is all there, but no meta-info
<hunar> :)
<Regenaxer> ret
<olaf_h> hi all, i want to delete an item in a list of lists,
<olaf_h> do i have to build recursive function by myself or is there already sth ?
<Regenaxer> Hi olaf_h!
<olaf_h> hi Regenaxer :-)
<Regenaxer> There is no recursive one
<Regenaxer> Perhaps 'mapcar' if it is on the second level
<Regenaxer> or fully recursive, yes
<Regenaxer> (mapcar '
<Regenaxer> (mapcar '((L) (delete X L)) Lst) ?
<olaf_h> ok, yes, nice practice for me :-)
<olaf_h> i would like to delete '(MR-backtick) out of nested lists of arbitrary depth
<olaf_h> so i have to do the recursive practice i think
<Regenaxer> ok
<olaf_h> thanks, just wanted to ask *before* doing it :-)
<olaf_h> most of the times i heard afterwards of nice little pil functions with short names doing exactly what was constructing before :-)
<olaf_h> ... what i was constructing ....
brandelune has joined #picolisp
olaf_h has quit [Quit: Leaving]
brandelune has quit [Quit: Leaving]
aw- has quit [Quit: Leaving.]
aw- has joined #picolisp
aw- has left #picolisp [#picolisp]
hunar has quit [Quit: Client closed]
aw- has joined #picolisp
aw- has quit [Client Quit]
aw- has joined #picolisp
clacke has quit [Read error: Connection reset by peer]
clacke has joined #picolisp
cranium has quit [Quit: Leaving]
aw- has quit [Ping timeout: 264 seconds]
<beneroth> John founded EFF. A good part of the infrastructure you use daily was made possible by him (DHCP, free Unix/Linux, GNU binutils, ...). And he is not known for harsh arguments or weird quotes like RMS.
<beneroth> Mozilla, FSF, EFF.. we're losing the core institutions of hacker culture :(
clacke has quit [Remote host closed the connection]
aw- has joined #picolisp