Hi pd,

> > > : (de pp P (prin "<p>") (run P) (prin "</p>") (pack "<p>" (run P)
> > "</p>") )
> > ...
> > This is a bit problematic, because the body in P is executed twice. Not
> > only is ...
> >    (de pp P
> >       (prin (pack "<p>" (run P) "</p>")) )
> yes, all my examples in my previous email are bad code, just  for output
> only, trying to offer examples of how things can go weird
> They're are not intended to be right implementations, too bad for that ;-)

No no, I did not say that :)

I just wanted to show the obvious shortcut.


> yes sure, I think the PilCon and this email thread are good examples of an
> interesting use of fexprs  but  even complex and large programs may be
> arranged in a way fexpr are not needed, it's a kind of condig style.

Right. The point is that FEXPRs allow you to write flow control in a way not
possible with EXPRs.


> My point is you can do with fexprs everything you do with exprs but the
> opposite is not true, fexprs have it own role in lisp. But I prefer to code
> in a more functional style working composing functions with inmutable
> objects and without side-effects.

OK. But please don't mix up the issue with side effects. They have nothing to do
with FEXPRs.


> It's always a balance between performance and logical beauty (from my point
> of view), but performance is not only about computing performarce but also
> logic and conceptual performarce and even profiling or debugging
> performance.

And in most cases you can get both (beauty and performance).

☺/ A!ex

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to