Skip to content
Prev 68864 / 398502 Next

How to extract function arguments literally

Dear all,

One of my friends asked me if it is possible to extract actual R
function arguments literally (precisely, as strings). The reason is
simple. He feels sometimes awkward to attach quotation marks :-). What
he actually wants is to pass R command arguments to XLisp subroutines
(He has been an enthusiastic XLisp user for a long time and still tends
to use R as a wrapper to XLisp). Is it possible, or should I advise him
not to be so lazy? The following is his simple example to explain the
situation.

R function "lc" which passes its argument to an Xlisp function:

 lc=function(cmd){
    cmd=as.character(substitute(cmd))
    .XLisp("lcommand", cmd)}

Corresponding XLisp function "lcommand":

 (defun lcommand (str) (eval (with-input-from-string (s str) (read s))))

If the argument cmd is a string (i.e. with quotation marks) or has no
space, it works fine.
[1] "abc"

But, if it has no quotation marks or contains spaces, it yileds an error.
Error: syntax error

He wants to use the syntax like lc((def x1 x2)), not like
lc("(def x1 x2)").

Thanks in advance.

==============================================================
Shigeru MASE <mase at is.titech.ac.jp>
        Tokyo Institute of Technology
        Dept. of Math. and Comp. Sciences
        O-Okayama 2-12-1-W8-28, Tokyo, 152-8550, Japan