Alex
Thank you very much for this.
Best Regards
Dean

On 23 November 2016 at 21:00, Alexander Burger <a...@software-lab.de> wrote:

> Hi Dean,
>
> > I'm just wondering what my options are re doing this....
> >
> > (de mmbr (Trgt L)
> >    (for Ele L
> >       (if (== Ele Trgt) (println "found so exit with true")
> >                         (println "try next")
> >       )
> >    )
> >    (prinl "list exhausted so return false")
> > )
> >
> > (mmbr 'B '(A B C))
> >
> > I only know how to iterate over lists using for but don't know how to
> exit
> > for.
>
> For simply finding an element in a list, you can use 'member' or 'memq'
>
>    (memq 'B '(A B C))
>
> It returns the restlist, or NIL if not found.
>
>
> To implement it yourself, you could do
>
>    (de mmbr (Trgt L)
>       (for Ele L
>          (T (== Ele Trgt) T) ) )
>
>    : (mmbr 'B '(A B C))
>    -> T
>
>    : (mmbr 'D '(A B C))
>    -> NIL
>
>
> > I also saw find...but wasn't sure exactly how I'd apply that.
>
>    : (find '((X) (== X 'B)) '(A B C))
>    -> B
>
>
> > BTW which is the most efficient loop in Picolisp from an execution
> > perspective?
>
> I would say 'while' and 'until', or 'do' for counted loops.
>
> You can experiment with 'bench' to compare the relative speeds.
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>

Reply via email to