>'assoc'iation list for such purposes. That is probably the fastest, and
surely most lispy :)

Then that's what I should really be doing...I wasn't familiar with this but
looking on the net it seems to involve "assoc" but I've also seen "idx" in
the lists part of the reference.

I think I "get" assoc
i.e.
: (assoc '(a) '(((a) vlu_a1 vlu_a2) ((a b).vlu_ab1))) #'(a) is the key for
vlu_a1 and vlu_a2
-> ((a) vlu_a1 vlu_a2)
: (assoc '(a b) '(((a) vlu_a1 vlu_a2) ((a b).vlu_ab3))) #'(a b) is the key
just for vlu_ab3
-> ((a b) .vlu_ab3)

but I can't see how the first few insertions in the example result in this
structure
(d (2 NIL 17 NIL A) (a b c))              # 'd' already existed

and wonder
a) if idx is a possible way of doing association lists and
b) irrespective of the answer how the above tree comes from the insertions.
Sorry if it's obvious and I've just missed it.

Best Regards
Dean

On 14 December 2016 at 19:31, Alexander Burger <a...@software-lab.de> wrote:

> Hi Bruno,
>
> > I'm surprised that (pick '((A B) (and (= A Value) B)) ListA ListB) is
> > faster than (get ListB (index Value ListA)).
>
> > It's true that get traverses ListB right after a traversal of ListA, but
> > pick seems to do the same traversal of
> > the same number of elements. The only difference is that pick traverses
> the
> > two lists at the same time, instead
> > of sequentially.
>
> Oops, you are right! I have not tested, but the 'pick' solution is probably
> *slower* than the get/index one, due to the function call overhead for each
> element.
>
> I think I never needed such a case. Usually I try do build 'assoc'iation
> list
> for such purposes. That is probably the fastest, and surely most lispy :)
>
> - Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>

Reply via email to