3

関数を返すユーザー定義関数を使用する Pari/GP ユーザー定義関数に問題があります。以下は簡単な例です:

? f(x) = { (t) -> x + t }
%1 = (x)->(t)->x+t
? g(x) = { local(y); y = f(x); (t) -> y(t) }
%2 = (x)->local(y);y=f(x);(t)->y(t)
? h = g(2)
%3 = (t)->my(x=2);y(t)
? h(1)
  ***   at top-level: h(1)
  ***                 ^----
  ***   in function h: y(t)
  ***                  ^----
  ***   not a function in function call
  ***   Break loop: type 'break' to go back to GP

h(1)=(g(2))(1)=y(1)=(f(2))(1)=3 になると思っていました。私は Pari のファーストクラス関数の制限に遭遇していますか、それとも何か間違っていますか? 後者の場合、どうすれば修正できますか?

4

1 に答える 1