Hi Alex
: (filter prog2 (1 a 2 b 3 c) '(T NIL .))
-> (1 2 3)
: (filter prog2 (1 a 2 b 3 c) '(NIL T .))
-> (a b c)

## Advertising

Yes the above is exactly what I'm after.
I copied this drop example straight from ninety nine....
? P16 (**) Drop every N'th element from a list.
: (drop '(a b c d e f g h i k) 3)
!? (drop '(a b c d e f g h i k) 3)
drop -- Undefined
I'm not sure why I'm getting "undefined".
I'm using the pil in my picolisp directory.... which looks like this....
exec ${0%/*}/bin/picolisp ${0%/*}/lib.l @ext.l "$@"
i.e. not the one in /bin which contains /usr,,,, which I think ISN'T local
and I think I compiled a local version.
Irrespective....thank you very much for your solution.
Best Regards Dean
On 6 February 2017 at 15:24, Alexander Burger <a...@software-lab.de> wrote:
> On Mon, Feb 06, 2017 at 12:25:14PM +0100, Alexander Burger wrote:
> > > I'd like to split a list '(txt1 2 txt2 6....
> > > into 2 lists
> > > '(txt1 txt2...
> > > and
> > > '(2 6
> >
> > You could for example filter them:
> >
> > (let
> > (Lst '(txt1 2 txt2 6)
> > A (filter sym? Lst)
> > B (filter num? Lst) )
> > ... use A and B ...)
>
> It is not clear what you need.
>
>
> If, for example, you want every *second* element, there is a nice trick:
>
> : (filter prog2 (1 a 2 b 3 c) '(T NIL .))
> -> (1 2 3)
>
> : (filter prog2 (1 a 2 b 3 c) '(NIL T .))
> -> (a b c)
>
> Similarly, you can extract other sequences if you pass the right pattern of
> NIL's and T's.
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>