ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Check also http://www.picolisp.com for more information
aw- has joined #picolisp
ubLIX has quit [Quit: ubLIX]
_whitelogger has joined #picolisp
alexshendi has quit [Ping timeout: 246 seconds]
<rick42> sup aw- hows it goin
<aw-> rick42: hey!
<aw-> good thanks, how are you?
orivej has quit [Ping timeout: 244 seconds]
cobax has joined #picolisp
_whitelogger_ has joined #picolisp
_whitelogger has joined #picolisp
freemint2 has joined #picolisp
alexshendi has joined #picolisp
freemint has quit [Ping timeout: 260 seconds]
_whitelogger has joined #picolisp
freemint has joined #picolisp
freemint2 has quit [Ping timeout: 260 seconds]
freemint2 has joined #picolisp
freemint has quit [Ping timeout: 268 seconds]
alexshendi has quit [Ping timeout: 250 seconds]
orivej has joined #picolisp
freemint2 has quit [Ping timeout: 268 seconds]
freemint has joined #picolisp
aw- has quit [Quit: Leaving.]
freemint has quit [Ping timeout: 268 seconds]
freemint has joined #picolisp
razzy has joined #picolisp
<razzy> good weekend
anjaa has quit [Ping timeout: 245 seconds]
Dragon-Warrior has joined #picolisp
Dragon-Warrior has quit [Quit: ERC (IRC client for Emacs 26.1)]
jibanes has quit [Ping timeout: 246 seconds]
jibanes has joined #picolisp
jibanes has quit [Ping timeout: 250 seconds]
jibanes has joined #picolisp
razzy has quit [Ping timeout: 250 seconds]
_whitelogger has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
razzy has joined #picolisp
orivej has joined #picolisp
alexshendi has joined #picolisp
<razzy> does picolisp have flip-flop expressions? like nested quote eval functions? (setq i (quote (+ 1 (eval (+ 1 2))))) -> ((+ 1 (eval (+ 1 2)))) i want eval to be evaluated
<Regenaxer> Hi razzy! I don't understand what you ask
<Regenaxer> : (quote (+ 1 (eval (+ 1 2))))
<Regenaxer> -> ((+ 1 (eval (+ 1 2))))
<Regenaxer> So?
<Regenaxer> Or this?
<Regenaxer> : (fill (quote (+ 1 (eval (+ 1 2)))) '(eval))
<Regenaxer> -> ((+ 1 (-22953989623 (+ 1 2))))
freemint2 has joined #picolisp
freemint has quit [Ping timeout: 268 seconds]
freemint has joined #picolisp
<razzy> Regenaxer: i want to have (eval something) to be evaluated. in elisp i think it is achieved with `( , , )
<Regenaxer> ` is relevant only during read
<razzy> there is (defun describe-path (edge) `(there is a ,(caddr edge) going ,(cadr edge) from here.))
<Regenaxer> What do you really want to do?
freemint3 has joined #picolisp
<Regenaxer> I mean, you can (eval (caddr I)) or so
<Regenaxer> but *why*?
mtsd has joined #picolisp
freemint2 has quit [Ping timeout: 250 seconds]
<razzy> i want to make nested expression that part of is evaluated and part is quoted. i like to think that way. now i am just learning. no practical reason
<Regenaxer> If you talk about backquote expressions in CL, then the above 'fill' is the equivalent
<Regenaxer> sic
<Regenaxer> (doc 'fill)
<razzy> thx
<Regenaxer> You can of course always control what you want to be evaluated
freemint has quit [Ping timeout: 250 seconds]
<mtsd> Good evening
<Regenaxer> See the ^ marker in 'fill'
<Regenaxer> hi mtsd!
<mtsd> Hi Regenaxer!
<Regenaxer> Kids sleeping I presume ;)
<mtsd> Hope things are well, with Christmas approaching and all?
<mtsd> haha, yes, kids sleeping :)
<Regenaxer> Yeah
<mtsd> Kids sleeping. Dad picolisping :)
<Regenaxer> :)
<razzy> i do not get fill and @
<razzy> i hoped for more straight foward way. i will meditate on it another day
<Regenaxer> 'fill' is straight. It fills a pattern
<Regenaxer> Like CL fills a form quoted by `
<Regenaxer> Not same syntax though
<Regenaxer> I did not want to waste a meta-character on what is a runtime function
<Regenaxer> ` is much more useful if available for read macros
<razzy> ok. i would grok (quasi-eval something (quasi-quote something) something)
<Regenaxer> I pil code is data
<Regenaxer> 'fill' takes an expression as data, and substitutes parts of it
<Regenaxer> that's all
<Regenaxer> Again, what do you *want*?
<razzy> generate symbols and functions in automated way
<Regenaxer> Then start with 'list' and 'cons' until you understand the mechanics
<Regenaxer> it is the base of all
<Regenaxer> 'fill' is just 'cons' in a more convenient way
<Regenaxer> a frontend to 'cons'
<razzy> i think i get list and cons
<Regenaxer> good
<Regenaxer> To "generate symbols" you can use 'pack' and 'intern'
<razzy> intern is helpfull
<Regenaxer> T
<Regenaxer> 'fill' is btw the counterpiece of 'match', but unfortunately not symmetrical
<razzy> so, i do not see how fill is helpfull to my quest
<Regenaxer> I still do not understand your quest :)
<razzy> i want to mix quoted and evaluated expressions
<razzy> to assemble weird s-expressions
<Regenaxer> "quote" is not relevant
<Regenaxer> (fill *Var ...) works too
ubLIX has joined #picolisp
<Regenaxer> Does this example help?
<Regenaxer> : (let (A 3 B 4) (fill '(a ^(list (+ A B) (* A B)) z)))
<Regenaxer> -> (a 7 12 z)
<Regenaxer> But the first argument to 'fill' does not need to be a quoted expression of course
<Regenaxer> Can be anything
<Regenaxer> eg built with 'list' or 'read' from a file
<Regenaxer> So when you say "quoted expressions" you rather mean "constant" data
<Regenaxer> or "pattern" data is better in case of 'fill' and 'match'
<razzy> i see thx. i do not see overall pattern
<razzy> i will meditate on this ussage
<Regenaxer> OK :) A general case of the above would be:
<Regenaxer> : (let (A 3 B 4) (fill (list 'a '^ '(list (+ A B) (* A B)) 'z)))
<Regenaxer> -> (a 7 12 z)
<razzy> Regenaxer: hmm, thx, i am more confused
<Regenaxer> But then it is of course easier to do:
<Regenaxer> : (let (A 3 B 4) (list 'a (+ A B) (* A B) 'z))
<Regenaxer> -> (a 7 12 z)
<Regenaxer> :)
<razzy> cons-fused :]
<Regenaxer> All extremely simple
<Regenaxer> You just manipulate s-exprs
<razzy> i miss most in picolisp overall pattern for ussage
<Regenaxer> yeah, cons-fused is good :)
<Regenaxer> Just keep in mind that all are just cells
<Regenaxer> you always manipulate cells
<razzy> ^ is new character to me
<Regenaxer> it is just a special marker in case of 'fill'
<Regenaxer> Normally '^' is a global
<Regenaxer> set during debugging
<Regenaxer> and in strings it is a meta-char for Control
<Regenaxer> "^I" is "\t"
<razzy> convenience of this is lost to me
<Regenaxer> Outside strings (transients) '^' is a normal internal symbol
<razzy> convenience of overloading chars like ^ is lost on me
<razzy> lost to me :]
<Regenaxer> It is not overloaded
<Regenaxer> ^ is a normal symbol
<Regenaxer> like '+' is a normal symbol
<Regenaxer> '^' is a *symbol* with a single character "^"
<Regenaxer> in strings the *character* "^" is a meta-char
<Regenaxer> like also backslash
<Regenaxer> so "\^" is a string with a single ^ :)
<Regenaxer> hehe
<Regenaxer> all very simple
<Regenaxer> sorry ;)
<Regenaxer> But this meta-char stuff is in most languages, can't be avoided it seems
<Regenaxer> I go to bed. Good night! :)
<razzy> good night
<Regenaxer> :)
razzy has quit [Ping timeout: 246 seconds]
ubLIX has quit [Quit: ubLIX]
mtsd has quit [Quit: WeeChat 1.6]
ubLIX has joined #picolisp
ubLIX has quit [Ping timeout: 246 seconds]
ubLIX has joined #picolisp
rick42 has quit [Quit: ZNC - http://znc.in]
freemint has joined #picolisp
freemint3 has quit [Ping timeout: 250 seconds]
razzy has joined #picolisp
<razzy> Regenaxer: my quest would be to make http://www.lisperati.com/casting.html in picolisp
freemint has quit [Ping timeout: 250 seconds]
DKordic has quit [Ping timeout: 240 seconds]