2017-02-04から1日間の記事一覧

TI-Nspire & Lua / スクリプティングのヒント / クロージャを使う 5 / 再帰的なローカル函数を作る

-- 再帰的なローカル函数の定義 local function fact(n) if n == 0 then return 1 else return n * fact(n - 1) end end print(fact(69)) -- 下のような定義の仕方では再帰呼び出しができない。 -- FACT(n - 1) をコンパイルする時点ではまだローカル函数 FA…

TI-Nspire & Lua / スクリプティングのヒント / クロージャを使う 4 / ローカル函数を作る

-- ローカル函数の作成 local function add(a, b) return a + b end local function double(n) return add(n, n) -- ここで、上に定義した add 函数が使用できる。 end print(double(10)) -- これは下のように記述しても同じことである。むしろこちらが lua …

TI-Nspire & Lua / スクリプティングのヒント / クロージャを使う 3 / テーブルに函数を格納する

-- テーブルに函数を格納する。 table = {} table.add = function(a, b) return a + b end table.sub = function(a, b) return a - b end print(table.add(1, 2), table.sub(1, 2)) -- これは下のように記述しても同じことである。 table = { add = function…

TI-Nspire & Lua / スクリプティングのヒント / クロージャを使う 2 / 函数を再定義する

-- math.sin 函数の引数が度単位で指定できるよう math.sin 函数を再定義してみる。 originalSin = math.sin math.sin = function(deg) -- これで、オリジナルの math.sin 函数が無名函数によって上書きされた。 return originalSin(math.rad(deg)) end prin…

TI-Nspire & Lua / スクリプティングのヒント / クロージャを使う 1 / 微分係数を求める

--[[ クロージャを利用して任意函数の点 x における傾きを求めてみる。 --]] function derivative(func, delta) local delta = delta or 1e-12 return function(x) return (func(x + delta) - func(x)) / delta end end function sute(x) -- この函数の点 x …