r-cas / caracas

Computer algebra in R
GNU General Public License v2.0
24 stars 2 forks source link

Extend as_sym to work on expressions #56

Open hojsgaard opened 2 years ago

hojsgaard commented 2 years ago

We could extend as_sym to work on expressions. A quick hack: as_sym2 <- function(expr, list_args=NULL){ f <- do.call("substitute", list(expr[[1]], list_args)) h <- deparse(f) as_sym(h)
}

expr <- expression(1-a^d) as_sym2(expr)

       1 - a

as_sym2(expr, list(d=8))

       1 - a
hojsgaard commented 2 years ago

If as_sym2 is extended slightly we get as_sym2 <- function(expr, list_args=NULL){ if (is.character(expr)) expr <- parse(text=expr) f <- do.call("substitute", list(expr[[1]], list_args)) h <- deparse(f) as_sym(h)
}

as_sym2("1-a^d", list(d=d))

       1 - a