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 ())