Max Alekseyev on Sun, 26 Mar 2023 17:02:45 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: from t_POL to t_CLOSURE (and back) |
Perhaps, I should clarify my question. The definitionf = z -> subst(p,variable(p),z)looks inefficient (and ugly) to me. I'd like to have a direct way to get the corresponding t_CLOSURE from a given polynomial, like I'd do for a fixed polynomial:f(x) = x^3 + x + 1My best attempt so far is? p = x^3 + x + 1
%1 = x^3 + x + 1
? eval(strprintf("f(%s) = %s", variable(p), p))
%2 = (x)->x^3+x+1? type(f)
%3 = "t_CLOSURE"It seems to archive what I want but using eval(strprintf(...)) is somewhat cumbersome.Regards,MaxOn Sat, Mar 25, 2023 at 8:41 PM Max Alekseyev <maxale@gmail.com> wrote:f(x)=eval(p) requires us to know that the variable of p is x, doesn't it?This does not work:f(variable(p)) = eval(p)Regards,MaxOn Sat, Mar 25, 2023 at 6:28 PM Bill Allombert <Bill.Allombert@math.u-bordeaux.fr> wrote:On Sat, Mar 25, 2023 at 05:54:10PM -0400, Max Alekseyev wrote:
> Is there any more straightforward/logical way than the following?
>
> ? p = x^3 + x + 1
> %1 = x^3 + x + 1
> ? type(p)
> %2 = "t_POL"
> ? f = z -> subst(p,variable(p),z)
> %3 = (z)->subst(p,variable(p),z)
> ? type(f)
> %4 = "t_CLOSURE"
> ? q = f('x)
> %5 = x^3 + x + 1
> ? type(q)
> %6 = "t_POL"
I do not know what is more straightforward/logical, but you can do
f(x)=eval(p)
Cheers,
Bill