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
seninha has quit [Quit: Leaving]
viaken has quit [Quit: bbl]
viaken has joined #picolisp
avocadoist has quit [Ping timeout: 245 seconds]
avocadoist has joined #picolisp
msavoritias has joined #picolisp
rob_w has joined #picolisp
seninha has joined #picolisp
teddydd has joined #picolisp
avocadoist has quit [Ping timeout: 246 seconds]
avocadoist has joined #picolisp
abu[7] has quit [Ping timeout: 246 seconds]
abu[7] has joined #picolisp
seninha has quit [Quit: Leaving]
rob_w has quit [Remote host closed the connection]
avocadoist has quit [Remote host closed the connection]
seninha has joined #picolisp
pablo_escoberg has joined #picolisp
<pablo_escoberg> OK, so I'm still not working on this until the weekend (and still working on tooling), but I thought of a way to explain why I want opts_meth:  First of all, IMO, the most underused tool in the programming kit is sensible, override-able defaults.  The way I like to implement this when working with objects is to have the defaults set in the class
<pablo_escoberg> definition, and overridden during object creation. So if I were to stick to positional arguments, I would end up with object creation calls that look like this:  (new '(+Foo) bar baz nil nil nil nil 'bat nil nil T 1 nil 0).  As opposed to (new '(+Foo) bar baz (('x . 'bat) ('y . T) ('z . 0))) which I find a lot more readable.  Hopefully that
<pablo_escoberg> finally explains why I'm doing this.  Alternatives welcome, of course.
seninha has quit [Remote host closed the connection]
<abu[7]> I think consing argument lists is extremely clumsy and inefficient
<abu[7]> And I don't believe it is needed
<abu[7]> In any case it is premature
<abu[7]> Your example is surely wrong (('x . 'bat) ('y . T) ('z . 0)))
<abu[7]> The quotes!!!
<abu[7]> You should really first write practical code and then start to abstract
<abu[7]> I'm programming since 46 years now, but never had a situation where such a setup of passing lists with constant values ever were useful
<abu[7]> But, ok, please try! I'm sure you'll give up soon
<abu[7]> We had many people here being carried away with enthusiasm about fantastic ideas, who quickly disappeared and never showed up again ;)
<pablo_escoberg> ok, I am pretty sure I won't be that guy.  If it turns out I'm barking up the wrong tree, I'll drop it and work a different way.  But I intend to spend the next year becoming a competent picolisp programmer.  I consider it a superpower.  I will also develop some tooling as I go and share it.  And of course, no process like this would be
<pablo_escoberg> complete without tons of stupid questions.  I just hope I can contribute enough to compensate for the stupid questions.  If I'm not, please lmk.
<abu[7]> Great! So I'm looking forward ☺
<abu[7]> There are no stupid questions anyway
<abu[7]> Concerning the k/v list, I would propose this:
<abu[7]> Instead of (new '(+Foo) bar '((x . bat) (y . T) (z . 0)))
<abu[7]> much better is (new '(+Foo) bar 'x 'bat 'y T 'z 0))
<abu[7]> Becaule if values like 'bat' are not constant, you need to build the list each time:
<abu[7]> (new '(+Foo) bar (list (cons 'x 'bat) (cons 'y T) (cons 'z 0]
<abu[7]> or in this case
<abu[7]> (new '(+Foo) bar (cons (cons 'x 'bat) '(y . T) (z 0]
<abu[7]> because T and 0 are constant
<abu[7]> And if your syntax is (new '(+Foo) bar 'x 'bat 'y T 'z 0))
<abu[7]> then you have (dm T (Bar . @) (doSomething Bar) (pass super]
<abu[7]> and in the parent class's T you de (dm T @ (whil (next) (put This @ (next))))
<abu[7]> that is all, no special mechanism needed
<abu[7]> bbl
Guest65 has joined #picolisp
Guest65 has quit [Client Quit]
pablo_escoberg has quit [Quit: Client closed]
seninha has joined #picolisp
rob_w has joined #picolisp
msavoritias has quit [Remote host closed the connection]
rob_w has quit [Quit: Leaving]
pablo_escoberg has joined #picolisp
pablo_escoberg has quit [Ping timeout: 246 seconds]