TI-Nspire & Lua / スクリプティングのヒント / クロージャを使う 9 of 9 / 演習 9.3: 多項式を計算する

-- 演習 9.3:  演習 5.4 では、係数テーブルと変数値とを引数として取ってその多項式の値を返す函数を記述した。
-- 今度はその函数のカリー化版を作れ。
-- 係数テーブルを変数として取ってその多項式の値を返す函数を返す函数を作れ。
function newpoly(coefficients) -- {a0, a1, a2, ...... , an}
   return function(x)
             local sum = 0
             for i = 1, #coefficients do
                sum = sum + coefficients[i] * x^(i - 1)
             end
             return sum
          end
end

------------------------------------
------------------------------------
------------------------------------
f = newpoly({3,0,1})
print(f(0))
print(f(5))
print(f(10))

f:id:ti-nspire:20170206064401p:plain:h200
 
Nspire で検算:
f:id:ti-nspire:20170206064650p:plain:h200
 
参考: