Thank you Alex...that's great.
I just came back to say that the above worked well for both strings and
numbers entered directly as the passed functions argument but not (it seems
:) ) for when the argument is supplied in a symbol. eval might well cope
with that and if not...I'll work on it.

Note, btw, that (car (cdr X)) can be simplified to (cadr X)

I thought that initially too but as you can see here (cdr Canned_fn) gives
a problem
whereas (car (cdr Canned_fn)) removes the parens that get put around Num.
I don't need the car for a string argument in another example so...
there could well be something wrong with this example

(de x2 (Num) (setq Res (* Num 2)))
(de fnfn (Canned_fn) (wait 1000)
   ((car Canned_fn) (cdr Canned_fn))) #calling a canned fn passed as arg
(prinl (x2 3)) #testing straight fn call -> 6
(prinl (fnfn '(x2 4))) #calling x2 as canned fn->8

Best Regards
Dean

On 20 January 2017 at 18:55, Alexander Burger <a...@software-lab.de> wrote:

> On Fri, Jan 20, 2017 at 06:26:14PM +0000, dean wrote:
> > I seem to be able to do this by....
> > (de some_fn (Canned_fn_and_arg......
> >
> > and then executing the Canned_fn_and_arg inside some_fn by doing....
> > ((car Canned_fn) (car (cdr Canned_fn)))
> >
> > Is this the right way or is there a slicker one?
>
> It depends on how 'Canned_fn_and_arg' looks like.
>
>
> I suspect that instead of
>
>    ((car Canned_fn) (car (cdr Canned_fn)))
>
> you could just call
>
>    (eval Canned_fn)
>
> ♪♫ Alex
>
>
> Note, btw, that (car (cdr X)) can be simplified to (cadr X)
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>

Reply via email to