actually, you could just put the function (mumble-mumble X) in the place
of Y:
(for X (1 2 3 4 5)
    (NIL (mumble-mumble X)
        (println "this does not work")) )

On Thu, Jul 12, 2018 at 9:27 PM Bruno Franco <>

> 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:
> 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 <> 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
>> --

Reply via email to