How can a string like “x^3 + 6*x^2 + 6*x” be turned into a function

```
p(x) = x^3 + 6*x^2 + 6*x
```

and conversely, given the function p, how to extract the body of the function as a string?

How can a string like “x^3 + 6*x^2 + 6*x” be turned into a function

```
p(x) = x^3 + 6*x^2 + 6*x
```

and conversely, given the function p, how to extract the body of the function as a string?

```
julia> eval(Meta.parse("p(x) = x^3 + 6*x^2 + 6*x"))
p (generic function with 1 method)
julia> p(2)
44
julia> p(3)
99
```

1 Like

Make sure you are not passing functions as strings. If you want a caller to pass a function like `x^3 + 6x^2 + 6x`

, have them pass an anonymous functions like `x -> x^3 + 6x^2 + 6x`

, not a string that you need to parse and `eval`

.

4 Likes

The situation is the reverse: I am the caller, and I get a structure returned in which the polynomials are given in this form. I have to convert them to functions. So I do not see a better solution then jling’s.

Why are the polynomials in that form? Can’t they just be returned as an array of coefficients for example?

4 Likes