Hi Enrique,
> (de leap (L)
> (make (for (P L P (nth P 9)) (link P))) )
>
> (de helper (L)
> (leap(leap(leap(leap(leap(leap L)))))) )
>
> We initialize the original list, and build the helper list:
>
> (setq A (need 2000000 0) # two million elements list
> B (helper A) )
Good idea! So you build a kind of octuple tree.
> We now define a new primitive function, in order to traverse
> the helper list. (I have added it to the /src/subr.c file of
> the picolisp source code).
>
> any doFastNth(any ex) {
> any x = cdr(ex);
Alternatively, you might consider putting it inline into the Lisp source
(load "@lib/gcc.l")
(gcc "fast" NIL 'fastNth)
any fastNth(any ex) {
any x = cdr(ex);
...
}
/**/
or - if you cannot have a C compilter at runtime - build a shared object
file (DLL) and call it e.g. as (fast:Nth ..).
♪♫ Alex
--
UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe