���եȥХ󥯥��ꥨ���ƥ��������ͤ�ꡢ�Ǥ���碌�ΤĤ��Ǥ˸��ܤ�����������

Lua��󤳤���Lua��

����ʾ������Τˡ�����ʤ˽����Ҥ��ʤ�ơ�

�֥饸�����ޤ�Τ��θ���ϡ���äȤ�ä��Τ��ơ���äȤ�äȻȤ��Ƥ�٤�����

�ܽ������Lua�ץ�����ߥ��פϡ������ȥ�ɤ���Lua�ץ�����ߥ󥰤������ʤΤ�����Perl�Ǥ������������Τ��������ǤϤʤ��饯����>��Python�ʤ��ͥ������ǤϤʤ��إ��������������ܽ�ˤ�Lua 5.1����ܤ���Ƥ��뵡ǽ�����٤ƾҲ𤵤�Ƥ���Τ���250�ڡ��������ʤ��Τˡ�

�ܼ� - ���եȥХ� ���ꥨ���ƥ��֤��ܡ�����Lua�ץ�����ߥ����
����1�� Lua��ȤäƤߤ褦
��1�� �Ϥ���ΰ���
��2�� ��������
��3�� ���ʤ�����
��4�� �����Ǥ����
����2�� Lua�ʤ餳���ʤ�
��5�� Lua�ǥǡ���������
��6�� �꡼����ν���
��7�� Lua�λ��Ȥ�
��8�� �����ʥӤ�ĩ��
����3�� Lua�򥫥����ޥ���
��9�� Lua���ĥ���Ƥߤ�
��10�� Lua�Υ����ʵ�ǽ
��11�� C����Ȥ�Ϣ��
��12�� Lua���ȹ���

�ʤ�Ǥ���ʷ�������ǽ�ʤΤ�?

Lua�������ޤ�˥���ѥ��Ȥ��������

���Υ����������ɤϡ�Perl/Ruby/Python�����微���������������ǤϤʤ�������Υץ�����ߥ󥰸���Υ����������ɤϡ�tarball��10MB�Υ�������������Lua�Τ���ϡ��ǿ���5.1.4�Ǥ�鷺��211.6KB����blog�Υȥåץڡ�����HTML���٤ʤΤǤ��롣

����Ǥ��ơ�����Ū�ʥ�����ץȸ��줬�����Ƥ���٤���ǽ�ϡ��ۤ�����·�äƤ��롣table�ˤ�������Ϣ�����󡢥��������㡼��������metatable�ˤ��OO���դˡ�Lua�򸫤뤳�Ȥǡ�����Ū�ʥץ�����ߥ󥰸���˲���ɬ�פʤΤ���褯�狼�롣

�����ڵ򡣼ºݤ�ư�����ƤߤƤ�餪�����ޤ���FizzBuzz�򾯤��礲���˽񤤤Ƥߤ���

fizzbuzz = (function()
  local fizzbuzz = { -- table �� JavaScript �� object ����
    fizz = { [0] = "Fizz" }, -- [0]���ʤ���fizz[1] = "Fizz"
    buzz = { [0] = "Buzz" }, -- lua�������1����Ϥޤ�Τ�
  }
  return function(n) -- ���������㡼��Ȥ���
    local fizz = n % 3
    local buzz = n % 5
    if fizzbuzz.fizz[fizz] then
      if fizzbuzz.buzz[buzz] then
         -- .. ��ʸ����Ϣ��
        return fizzbuzz.fizz[fizz] .. fizzbuzz.buzz[buzz]
      else
        return fizzbuzz.fizz[fizz]
      end
    else
      if fizzbuzz["buzz"][buzz] then
        return fizzbuzz["buzz"][buzz]
      else
        return n
      end
    end
  end
end)()

for i=1,30 do
  -- eval��loadstring�� string �� function �ˤ��Ƥ���
  local f = loadstring("print(fizzbuzz(" .. i .. "))") 
  f() -- �¹Ԥ��롣JS�� new Funcion()�Ȥۤ�Ʊ��
end

�֤Ȥ󤬤ä��פȤ����ϡ�����0����ǤϤʤ�1����Ϥޤ뤰�餤�Τ�ΤǤϤʤ���������Ǥ��顢JavaScript��Ʊ�����������Ϣ�������ɤ����table�פʤΤǡ���Τ褦�ˤ����array[0]��Ȥ����Ȥ��Ǥ��롣

���äȤ�äƤߤ���δ��ۤϡ���Lua��JavaScript��ʸˡ��PascalŪ�ˤ��ơ��ץ��ȥ����פ�ʤ�������˥᥿�ơ��֥����ĸ���פȤ�����ΤǤ��롣�����������᥿�ơ��֥�ξҲ𤬤ޤ����ä�������ϥơ��֥�ˡֱ���°���פ�������뤳�Ȥˤ�äơ��ơ��֥�ε�ǽ���ĥ����Ȥ�����ΤǤ��롣JavaScript��__noSuchMethod__�ߤ����ʴ�������

�����ڵ򡣤����ºݤ˸��Ƥߤ褦��

fibs = { 1, 1 }
setmetatable(fibs, {
  __index = function(name, n)
    name[n] = name[n - 1] + name[n - 2]
    return name[n]
  end
})

for i=1,69 do print("fibs[" .. i .. "] = " ..fibs[i]) end

����äȤ������ʤ���������������ʪ��200KB�����ʤ�����ˤ�������Τ��Ȥ������ʤ�ơ�

�������Lua������ѥ��ȤʤΤˤϤ櫓�����롣��Ĥϡ�����ε�ǽ��˭�٤Ǥ���äϤ����ǤϤʤ����ȡ��饤�֥�꡼�ϴ���Ū�ʤ�ΤΤߤǡ����������Web�ץ�����ߥ󥰤������ʤ���褿�ꤹ�뤳�ȤϤʤ�����ȯ�����ޤ��μ���и���ʤ��Ҥɤ�Τ褦�ʴ�������

����⤽�ΤϤ���Lua���Ȥ߹��߸���Ȥ��Ƴ�ȯ����Ƥ�����¾�Υ�����ץȸ���Τ褦�ˡ�����˵�ǽ���ɲä���ΤǤϤʤ�����ǽ=���ץꥱ�������˸�����ɲä���Τ�Lua�ʤΤ���World of Warcraft �Υᥤ��ε�ǽ��"fun"�Ǥ��ä�"code"�ǤϤʤ���Adobe Photoshop Lightroom�⤷���ꡣ¾�θ�����Ȥ߹��ळ�Ȥ����ưפǡ��㤨��Perl�ˤ�Inline::Lua�����Ǥ�¸�ߤ��롣

Lua�ϥݥ�ȥ����ǡַ�ס� ��Τ褦�˹�����DZ���Ū�ʸ���ʤΤǤ��롣

Ψľ�˸��äơ�Lua���絬�ϥץ��������Ȥ��ꤿ���Ȥϻפ�ʤ����������LuaŪ�ǤϤʤ��Ȼפ������������Ȥ����򤹤�ˤϡ�Lua�Ϥ��ޤ�ˤ�󤳤��������������絬�ϥץ��������Ȥ����DSL��ɬ�פˤʤä��Ȥ����虜�虜DSL���뤰�餤�ʤ�Lua���Ȥ߹���Ǥ��ޤä������褤�ΤǤϤʤ�����

����Ǥ⡢�᥿�ơ��֥����Ũ�����롣�����Ȥä��֥ե�ܥǥ��פ�Lua���ߤ����ʤ�ۤɡ����Τ褦�ʤ�Τ�����Ȥ����顢̾���Ϥ�Ϥ�Terra�ˤʤ�Τ���������

����ʤ�󤳤��Ҥ⡢���ܸ�Ǥ��ޤ�Ҳ𤵤�Ƥ��ʤ��ä����᤽��ۤ��Τ��Ƥ��ʤ��ä������ܽ�Ǥ�����Ѥ����������ץ�����ޡ��ʤ���٤��դ���äƤߤ�٤��Ǥ� end

Dan the Polyglot