Joh-Tob
>One does not simply say that the pil interpreter is missunderstanding.
"One" didn't :) but thank you for your solution and for explaining what
Alex meant by
>readable, Lisp-style formatted code for your posts.

Christophe
Thank you for correcting Joh-Tob straight and for your solution.

Alex
Thank you for your solution and in the future I'll try to narrow my code
and pp my functions.

Best Regards
Dean




On 11 December 2016 at 07:52, Joh-Tob Schäg <johtob...@gmail.com> wrote:

> You can produce a readable version of a function by (pp 'function)
>
> 2016-12-11 8:12 GMT+01:00 Alexander Burger <a...@software-lab.de>:
>
>> Hi Dean,
>>
>> first of all, could you please try to produce some readable, Lisp-style
>> formatted code for your posts? If possible, boiled-down and simplified
>> to the essence?
>>
>>
>> On Sat, Dec 10, 2016 at 10:01:18PM +0000, dean wrote:
>> > The following program shows me trying to extract a function name from a
>> > "string" and execute the function using the string.
>> > The function is called some_fn.
>> > If I type (some_fn) directly...all is well.
>> > When I first executed (Fn) that I THOUGHT held the function name...it
>> > didn't so I dropped into the REPL and played until I got (some_fn)
>> returned
>> > i.e. by (str (glue "" Fn)) i.e. -> (some_fn)
>> > I thought putting this in my program would call some_fn but it doesn't
>> and
>> > I don't understand why.
>> > Thank you in anticipation
>> > Dean
>> >
>> > (setq Lmnu
>> >     '(mAin_mnu-some_fn))
>> >
>> > (de some_fn ()
>> >    (prinl "yes in some_fn"))
>> >
>> > (de lmnu_to_mnu_tbl (Lmnu Lkey)
>> >    (for Ele Lmnu
>> >         (
>> >             ifn (car Ele)
>> >             (prog
>> >                (setq Optn_fn_pair (split (chop Ele) '-))
>> >                (setq Optn (get Optn_fn_pair 1))
>> >                (setq Fn (get Optn_fn_pair 2))
>> >
>> >                (some_fn) #this worked fine
>> >
>> > #!
>> > #: (Fn)         #this didn't 'cos Fn contained "s" "o" "m".....
>> > #-> "n"
>> > #: (glue "" Fn)
>> > #-> "some_fn"
>> > #: (str (glue "" Fn))   #this looked to evaluate to (some_fn) which
>> worked
>> > above
>> > #-> (some_fn)
>> >
>> >                #(str (glue "" Fn)) #but executing it didn't call some_fn
>> >                #((str (glue "" Fn))) #nor did evaluating what got
>> returned
>> >             )
>> >             (prog
>> >                # (printsp Ele 'is 'a 'list)
>> >                # (prinl)
>> >             )
>> >          )
>> >    )
>> > )
>> >
>> > (debug 'lmnu_to_mnu_tbl)
>> > (lmnu_to_mnu_tbl Lmnu ())
>>
>>
>> If I get you right, you have a symbol 'mAin_mnu-some_fn', and want to
>> extact
>> the part after the "-" and execute it as a function? Then you could
>>
>>    ((intern (pack (cadr (split (chop 'mAin_mnu-some_fn) "-")))))
>>
>>
>> Or, if you want to keep the function in a variable 'F'
>>
>>    (let F (intern (pack (cadr (split (chop 'mAin_mnu-some_fn) "-"))))
>>       (F) )
>>
>> Cheers,
>> - Alex
>> --
>> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>>
>
>

Reply via email to