That' great....thank you for both examples. On 27 January 2017 at 19:03, Alexander Burger <a...@software-lab.de> wrote:
> Hi Dean, > > > (de fltr (Buf Ln) > > (setq New_buf (mapcar '((Ele) (pack (tail (- (length Ln)) (chop > Ele)))) > > (filter '((Ele) (pre? Ln Ele)) Buf)))) > > ... > > #: (fltr '(aa ab) 'ab) > > #-> (NIL) > > You can use 'extract' to get exactly the results you need: > > (de fltr (Buf Ln) > (let N (inc (length Ln)) > (extract > '((Ele) > (when (pre? Ln Ele) > (pack (nth (chop Ele) N)) ) ) > Buf ) ) ) > > > Perhaps 'match' is more elegant than 'pre?' and 'nth' or 'tail': > > (de fltr (Buf Ln) > (let Pat (conc (chop Ln) '(@Rest)) > (use @Rest > (extract > '((Ele) > (and (match Pat (chop Ele)) (pack @Rest)) ) > Buf ) ) ) ) > > In both cases: > > : (msg (fltr '(aa ab abc) 'ab)) > -> ("c") > > ♪♫ Alex > -- > UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe >