TI-Nspire & Lua / スクリプティングのヒント / クロージャを使う 8 / 演習 9.2

-- 演習 9.2: 下のチャンクの出力はどうなるか。
function F(x)
   return {
      set = function(y)
               x = y
            end ,
      get = function()
               return x
            end ,
   }
end
o1 = F(10)
o2 = F(20)
print(o1.get(), o2.get()) -- x の値がそのまま返ってくる
o2.set(100)
o1.set(300)
print(o1.get(), o2.get()) -- set された値が返ってくる。

f:id:ti-nspire:20170206062226p:plain

参考: