Subject: RE: How to find a procedure given a symbol or string From: dmahler@xxxxxxxxxx Date: Thu, 29 Jul 1999 05:27:10 -0500 (CDT) |
On Thu, 29 Jul 1999, Frank A. Christoph wrote: > > >> To paraphrase Mitch C. Amiano <amiamc@xxxxxxxxxxxxxxx> question: > > >> given tags like > > >> <jediknight name="obiwan" func="apprentice"> > > >> and DSSSL functions > > >> (define (apprentice name) (string-append name " is an apprentice" )) > > >> I want to use the value of "func" to call the correct DSSSL function... What you need is eval, (define (string->procedure name) (eval (string->symbol name))) then you can do ((string->procedure name) arg1 arg2 ...) or (apply (string->procedure name) arglist) if you have the arguments in a list. Daniel > > > > Something like the following ought to work: > > > > (element JEDIKNIGHT > > (let ((func (string->symbol (attribute-string "FUNC")))) > > (apply func (attribute-string "NAME")))) > > That won't work. A symbol is not a procedure; it cannot be applied: > ('apprentice "obiwan") > > --FC > > > DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist > DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: How to find a procedure given a, Frank A. Christoph | Thread | Re: How to find a procedure given a, Brandon Ibach |
Appending path to a filename resolv, joseph, Gershon | Date | Re: How to find a procedure given a, Brandon Ibach |
Month |