Well, for the conditional exit in the iterators (for, do, and loop),
I would do something like this:
(use Y
    (for X (1 2 3 4 5)
        (setq Y (mumble-mumble X))
        (NIL Y (println "this does not work")) ) )

Though I'm not sure that is the most elegant way to go XD.

As for the local exits, maybe an example of when you wanted to do one
in picolisp would be useful to point you in the right direction.

And the macros, here's a page that can help you find your way
around not having them:
https://picolisp.com/wiki/?macros

also see the functions 'fill and 'macro.
'fill replaces each occurence of a pattern @Pat with its value in the
list that you give it, and 'macro does the same, but evaluates the
resulting list too.

Hope this helps!


On Thu, Jul 12, 2018 at 1:34 PM Johan Persson <j...@bahnhof.se> wrote:

> Hi, list!
>
> First I'd like to say that I'm having a blast playing around with
> PicoLisp lately. (It only took me about seven years to get around to
> it!) The fact that it exists and work as well as it does is a fresh and
> bold counterpoint to the conventional wisdom of the current programming
> language design canon. I love it.
>
> Anyhow, there are a few things that the Common Lisper in me find a bit
> puzzling:
>
> First off, I'm confused about what the correct way of doing local exits.
> There's no "return" or "return-from" -- instead the closest thing I've
> found is "quit", which is sort of akin to "error" in CL, but without the
> jump into the condition-system. It feels wrong. Is it wrong?
>
> Then there's the conditional exits in "for", "do" and "loop" which
> presents a real problem if you wish to terminate the loop from within a
> sub-clause:
>
>      (for X (1 2 3 4 5)
>        (let Y (mumble-mumble X)
>           (NIL Y (println "this doesn't work"))))
>
> What's the correct way of doing this? Throw the value and catch it right
> outside of the for-loop?
>
> I'm also a pathological meta-programmer, and the lack of macros doesn't
> bother me as much as I thought it would. However, one thing I miss from
> other lisps is a way of expanding macros. How would I go on about doing
> that in PicoLisp?
>
> / Johan
>
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>

Reply via email to