¡¡¡á¡á¡¡¤³¤Îʸ½ñ¤ÏLua¥Ð¡¼¥¸¥ç¥ó£´¤ÎÆâÍÆ¤Ç¤¹¡¡¡á¡á

Lua¸À¸ì¤Î¼ê°ú¤­

¡½ ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ìLua(4.0)¤Ë¤Ä¤¤¤Æ¤Î´ðÁÃÃμ±

TeCGraf, PUC-Rio

Ìõ2001ǯ10·î24Æü

1. ¤Ï¤¸¤á¤Ë

¤³¤Îʸ¾Ï¤Ï¡¢¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥¨¥¢Lua¤Î¥Û¡¼¥à¥Ú¡¼¥¸¤«¤éÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¥Ý¥ë¥È¥¬¥ë¸ì¤Ç½ñ¤«¤ì¤¿Lua¤ÎÆþÌç½ñ¤ÎÏÂÌõ¤Ç¤¹¡£Waldemar Celes Son¡¢ Luiz Enrique de Figueiredo¡¢ Robert Ierusalimschy ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿ÏÀʸ"Programming in Lua - Practical Theory (version 2.1) " ¤ª¤è¤Ó "The Language of Extension Lua "¤ÎÆâÍÆ¤ò´Þ¤ó¤Ç¤ª¤ê¡¢Lua version 3.1 ¤Ø¤ÎÂбþ¤Ï Anna Magdalena Hester ¤Ë¤è¤ëʸ ½ñ¤ò¤â¤È¤Ë Robert de Beauclair Seixas ¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤Þ¤·¤¿¡£ÆüËÜ¸ì¤Ø¤ÎËÝÌõ¤Ï¡¢¸¶Ãø¼Ô¤Îµö²Ä¤òÆÀ¤Æ¡¢ÂçºåÂç³ØÂç³Ø±¡¤ÎÃÓÅÄ¡¡Å°»Ö¤µ¤ó¤È¡¢»º¶Èµ»½ÑÁí¹ç¸¦µæ½ê¡¡°¤Éô¡¡¹¬³¨¤µ¤ó¤Î¶¨ÎϤΤâ¤È¤Ë¡¢»º¶Èµ»½ÑÁí¹ç¸¦µæ½ê¡¡¾åÌî¡¡Ë­¡¡¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤Þ¤·¤¿¡£

     ftp://ftp.tecgraf.puc-rio.br/pub/lua/nocoes-3.1.pdf 
     http://www.tecgraf.puc-rio.br/lua/ftp/nocoes-3.1.pdf

Lua¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥¨¥¢¤È¤·¤ÆÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ç¤¹¤¬¡¢ TeCGraf¤¬Ãøºî¸¢¤òÊÝ»ý¤·¤Æ¤¤¤Þ¤¹¡£

     ftp://ftp.tecgraf.puc-rio.br/pub/lua/lua-3.1.tar.gz 
     http://www.tecgraf.puc-rio.br/lua/

Copyright (c) 1994-1998 TeCGraf, PUC-Rio. Written by Waldemar Celes Filho, Roberto Ierusalimschy, Luiz Henrique de Figueiredo. All rights reserved.

2. ³µÍ×

Lua¸À¸ì¤Ï¡¢C ¸À¸ì¤Ê¤É¤Ç½ñ¤«¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤ËÁȤ߹þ¤ó¤Ç¡¢½é´üÀßÄê¤äµ¡Ç½³ÈÄ¥¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë³«È¯¤µ¤ì¤¿¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ç¤¹¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Ë¡¢Lua¸À¸ì¤Î½èÍý·Ï¤òÁȤ߹þ¤à¤³¤È¤Ç¡¢¥Ñ¥é¥á¡¼¥¿ÀßÄê¤ä¥«¥¹¥¿¥Þ¥¤¥º¤·¤¿½èÍý¤òLua¸À¸ì¤Çµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Þ¤¿¡¢Ã±ÆÈ¤Çưºî¤¹¤ëLua¸À¸ì¥¤¥ó¥¿¥×¥ê¥¿¤ò»È¤Ã¤Æ¡¢ÌÜŪ¤Î½èÍý¤ò¹Ô¤¦¥×¥í¥°¥é ¥à¤òºîÀ®¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ Lua¸À¸ì¤Ï¡¢¤¤¤ï¤æ¤ë´Ø¿ô·¿¤Î¥×¥í¥°¥é¥à¸À¸ì¤Ç¡¢½èÍý¤Îή¤ì¤Ï¡¢Pascal¸À¸ì¤Ë»÷¤¿´ÊÁǤÊʸˡ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡Êif-elseif-else-end, while-do-end, repeat-until¡Ë¡£¤½¤·¤Æ¡¢¥Ç¡¼¥¿µ­½ÒÊýË¡¤¬Ë­É٤ǡ¢ÊØÍø¤Êµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£ ¡Ê£±¡Ëʸ»úÎó¥Ç¡¼¥¿¤Î ½èÍý¤òÍÆ°×¤Ë¤¹¤ë¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¥ó¥° ¡Ê£²¡Ë¥Æ¡¼¥Ö¥ë·¿¥Ç¡¼ ¥¿¤Ë¤è¤ë¹½Â¤²½¤·¤¿¥Ç¡¼¥¿¤Îµ­½Ò ¡Ê£³¡Ë¥Æ¡¼¥Ö¥ëÆâÍÆ¤ÎưŪ¤ÊÊѹ¹¤¬²Äǽ ¡Ê£´¡Ë¼«Æ°¥á¥â¥ê³ä¤êÅö¤Æ¤È¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥·¥ç¥ó ¥á ¥â¥ê¤ÎºÆÇÛÃÖ¤ä½é´ü²½¤Ê¤É¤Ï¸À¸ì½èÍý·Ï¤Î»ý¤Ä¥¬¡¼¥Ù¥¸¥³¥ì¥¯¥·¥ç¥óµ¡Ç½¤Ë¤è¤Ã ¤Æ¡¢¥á¥â¥ê¤äÊÑ¿ô¤ÎÄêµÁ¤Ê¤É¤ËÈѤ蘆¤ì¤ë¤³¤È¤Ê¤¯¡¢Â¿Íͤ˹½Â¤²½¤·¤¿¥Ç¡¼¥¿¤ò°·¤¦¥×¥í¥°¥é¥ß¥ó¥°¤¬¤Ç¤­¤Þ¤¹¡£¥Æ¡¼¥Ö¥ë·¿¥Ç¡¼¥¿¤Ï¡¢¥Ç¡¼¥¿¤òÃê¾Ý²½¤¹¤ë¤Î¤ËÊØÍø¤Ç¤¹¡£Lua¸À¸ì¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤Ïɸ½à´Ø ¿ô¤ä¤½¤Î¾¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬ÍøÍѤǤ­¤Þ¤¹¤¬¡¢ÆÈ¼«¤Î´Ø¿ô¤òÄɲ乤뤳¤È¤â¤Ç¤­¤Þ¤¹¡£ ¤³¤ì¤Þ¤Ç¤ËLua¸À¸ì¤ò»È¤Ã¤¿¥·¥¹¥Æ¥à¤â¤¤¤¯¤Ä¤«³«È¯¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Î㤨¤ÐCGILua ¤Ï¡¢¹âÅÙ¤ÊWeb¥µ¥¤¥È¤ò¹½ÃۤǤ­¤ë¥·¥¹¥Æ¥à¤Ç¤¹¤¬¡¢Lua¸À¸ì¤Ë¤è¤ë¥¹¥¯¥ê¥×¥È¤ò»È¤Ã¤Æ¡¢Æ°Åª¤ÊHTMLʸ½ñ¤òÀ¸À®¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

     http://www.lua.org

3. ¥×¥í¥°¥é¥à¤È¼Â¹Ô´Ä¶­

Lua¸À¸ì¤Î¥×¥í¥°¥é¥à¤Ï¡¢Ì¿Îáʸ¤È´Ø¿ô¤ÎÄêµÁ¤Ç¹½À®¤µ¤ì¤Þ¤¹¡£¤½¤ì¤é¤Ï°ì¤Ä¤Î¼Â¹Ô´Ä¶­¤ÎÃæ¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£Ì¿Îáʸ¤Ï¥Æ¥­¥¹¥ÈÃæ¤Î¤É¤Î¥«¥é¥à¤Ë¤¢¤Ã¤Æ¤â¤è¤¯¡¢¥Õ¥ê¡¼¤Ê½ñ¼°¤Ç¡¢¥¹¥Ú¡¼¥¹¤ä²þ¹Ô¤Ç¶èÀڤ俤ꡢ¥»¥ß¥³¥í¥ó ( ;) ¤ÇÌÀ¼¨Åª¤Ë¶èÀڤ俤ꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£¤Þ¤¿¡¢£²¤Ä¤ÎϢ³¤·¤¿¥Ï¥¤¥Õ¥ó ( -) ¤«¤é¹ÔËö¤Þ¤Ç¤¬¥³¥á¥ó¥È¤È¤Ê¤ê¤Þ¤¹¡£ Lua¸À¸ì¤Î¥¤¥ó¥¿¥×¥ê¥¿¤Ï¡¢°ì¤Ä¤Î¼Â¹Ô´Ä¶­¤ËÊ£¿ô¤Î¥×¥í¥°¥é¥à¤òÆÉ¤ß¹þ¤à¤³¤È¤¬¤Ç¤­¡¢¤½¤ì¤¾¤ì¤Î¥×¥í¥°¥é¥à¤Ï¡¢ÆÉ¤ß¹þ¤Þ¤ì¤¿½ç¤ËËÝÌõ¤µ¤ì¡¢¤½¤ì¤¾¤ì¤ÎÌ¿Îáʸ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¤½¤·¤Æ¡¢´Ø¿ôÄêµÁ¤ÎÃæ¤Ë¤¢¤ëÌ¿Îáʸ¤ÏËÝÌõ¤µ¤ì¤¿¤¢¤È¡¢´Ø¿ô¤Î¥³¡¼¥É¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢Âç°èÊÑ¿ô¤ä´Ø¿ô¤ÎÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¼Â¹Ô´Ä¶­¤Ï¡¢¥¤¥ó¥¿¥×¥ê¥¿¤òưºî¤µ¤»¤¿¤È¤­¤Ëºî¤é¤ì¡¢ÍøÍѤò½ªÎ»¤¹¤ë¤Þ¤ÇÍ­¸ú¤Ç¡¢¤½¤ì¤é¤Î´Ø¿ô¤ä¥Ç¡¼¥¿¤Ï¡¢Lua¸À¸ì¤Î¥×¥í¥°¥é¥à¤äC ¸À¸ì¤È¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤ ¥¹¤Î¥é¥¤¥Ö¥é¥ê¤Ç¡¢Áàºî¤Ç¤­¤Þ¤¹¡£ Lua¸À¸ì¤Î½èÍý·Ï¤Ç¤Ï¡¢¼Â¹Ôñ°Ì¤Î¥×¥í¥°¥é¥à¤ò¥Á¥ã¥ó¥¯¤È¸Æ¤Ó¤Þ¤¹¤¬¡¢¤½¤ì¤ò²¾ÁÛ¥Þ¥·¥ó¤Î¼Â¹Ô¥³¡¼¥É¤ËËÝÌõ¤·¡¢¤½¤Î¸å²¾ÁÛ¥Þ¥·¥ó¤Ë¤è¤Ã¤Æ¥³¡¼¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Î¥³¡¼¥É¤Ï¡¢´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¹â®¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤È¥¤¥ó¥¿¥×¥ê¥¿¤òÍ»¹ç¤·¤¿Êý¼°¤Ç¡¢¥×¥í¥°¥é¥à¤òÃ༡ËÝÌõ¤¹¤ë¤³¤È¤Ç¼Â¹Ô®ÅÙ¤òÄã²¼¤µ¤»¤ë¤³¤È¤Ê¤¯¡¢¥¤¥ó ¥¿¥×¥ê¥¿¤Î»È¤¤¤ä¤¹¤¤´Ä¶­¤òÊݤäƤ¤¤Þ¤¹¡£

4. ÊÑ¿ô¤È·¿

Lua¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¡¢Âç°èÊÑ¿ô¤ÏÀë¸À¤Ê¤·¤Ç»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¡ÊÃí¡§¸å¤ÇÀâÌÀ¤¹¤ë¶É½êÊÑ¿ô¤ò»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡ËÎ㤨¤Ð¡¢¼¡¤Îʸ¤Ç¡¢¿·¤¿¤ËÊÑ¿ô a ¤ò»È¤¤¡¢2.3¤È¤¤¤¦¿ôÃÍ·¿¤Î¥Ç¡¼¥¿¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

     a =  2.3

¤½¤·¤Æ¼¡¤ÎÎã¤Ç¤ÏÊÑ¿ôa¤Çʸ»úÎó¥Ç¡¼¥¿¤ò»²¾È¤¹¤ë¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£

     a = "Language Lua"

Lua¸À¸ì¤Ç¤Ï¡¢ÊÑ¿ô¤Ë¤Ï·¿¤¬¤¢¤ê¤Þ¤»¤ó¤¬¡¢ÊÑ¿ô¤Ç»²¾È¤¹¤ë¥Ç¡¼¥¿¤Î¼ïÎà¤Ë¤Ï·¿¤¬¤¢¤ê¡¢ nil, ¿ôÃÍ, ʸ»úÎó, ´Ø¿ô, C ¤Î´Ø¿ô, ¥æ¡¼¥¶¥Ç¡¼¥¿¡¢ ¥Æ¡¼¥Ö¥ë¤Î£·¼ïÎढ¤ê¤Þ¤¹¡£

nil ·¿

nil·¿¤Ï ̤ÄêµÁ¥Ç¡¼¥¿¤òɽ¤·¤Þ¤¹¡£

     a = b

¤³¤Î¾ì¹ç¤Ï¡¢ÊÑ¿ô b ¤Î»²¾È¤¹¤ë¥Ç¡¼¥¿¤Ï nil ¤È¤Ê¤ë¤Î¤Ç¡¢ÊÑ¿ô a ¤Ë¤Ï nil ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£¼¡¤ÎÎã¤Î¤è¤¦¤Ë¡¢ nil ¤È¤¤¤¦Í½Ìó¸ì¤Çɽ¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

     a = nil

ÊÑ¿ô a ¤Ë¤Ï nil ¤È¤¤¤¦Ãͤ¬ÂåÆþ¤µ¤ì¤Þ¤¹¤¬¡¢ a ¤ËÃͤ¬Æþ¤Ã ¤Æ¤¤¤Ê¤¤¾õÂÖ¤ÈÆ±¤¸¤Ç¤¹¡£ÊÑ¿ô¤ËÃͤ¬Æþ¤Ã¤Æ¤¤¤Ê¤¤¤«¤É¤¦¤«¤Ï¼¡¤Î¤è¤¦¤Ë¥Æ¥¹¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤¹¤Ù¤Æ¤Î̤ÄêµÁ¤ÎÊÑ¿ô¤Ï nil ¤È ¤¤¤¦Ãͤò»ý¤Ä¤È¹Í¤¨¤é¤ì¤Þ¤¹¡£

     a == nil
¿ôÃÍ·¿

Lua ¤Ç°·¤¦¿ôÃͥǡ¼¥¿¤Ï¼Â¿ô¤ÈÀ°¿ô¤Î¶èÊ̤Ϥ¢¤ê¤Þ¤»¤ó¡£¼¡¤ÎÎã¤Ç¤Ï¡¢ a¡¢ b¡¢ c¡¢d ¤Î³ÆÊÑ¿ô¤Ë¿ôÃͤòÂåÆþ¤·¤Æ¤¤¤Þ¤¹¡£

     a =4
     b =4.0 
¡¡   c =0.4e1 
     d =40e-1
ʸ»úÎó·¿

Lua ¤Îʸ»úÎó¤Ï°ì½Å°úÍÑÉä(' ')¤Þ¤¿¤ÏÆó½Å°úÍÑÉä(" ")¤Ç°Ï¤Þ¤ì¤ëʸ»ú¤Î·ÏÎó ¤Ç¤¹¡£Ê¸»úÎóÃæ¤Ç¤Ï¡¢°Ê²¼¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

     \n     ²þ¹Ô 
¡¡   \t     ¿åÊ¿¥¿¥Ö 
¡¡   \r     Éüµ¢ 
¡¡   \v     ¿âľ¥¿¥Ö 
     \xxx   ʸ»ú¥³¡¼¥É¤¬ 10 ¿Ê¿ô xxx  ¤Îʸ»ú 
¡¡   \a     ¥Ù¥ë 
¡¡   \b     °ìʸ»ú¸åÂà 
¡¡   \f     ¥Õ¥©¡¼¥à¥Õ¥£¡¼¥É 
     \\     ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å 
¡¡   \"     Æó½Å°úÍÑÉä  (") 
¡¡   \'     °ì½Å°úÍÑÉä  (') 
¡¡   \\     ¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å(\)

Æó½Å°úÍÑÉä¤Ç°Ï¤Þ¤ì¤¿Ê¸»úÎóÃæ¤Ç¤Ï¡¢°ì½Å°úÍÑÉä¤ò¥¨¥¹¥±¡¼¥×̵ ¤·¤Ç¤½¤Î¤Þ¤ÞÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤·¤«¤·¡¢¤¢¤ëʸ»úÎó¤ò°Ï¤à¤Î¤ËÍѤ¤¤é¤ì¤Æ¤¤¤ë°úÍÑÉä¹ç¤ò¤½¤Îʸ»úÎóÃæ¤ÇÍѤ¤¤ë¤È¤­¤Ë¤Ï¡¢¥¨¥¹¥±¡¼¥×¤¹¤ëɬÍפ¬¤¢¤ê ¤Þ¤¹¡£¼¡¤ÎÆó¤Ä¤Ïʸ»úÎó¤È¤·¤ÆÍ­¸ú¤Ç¤¢¤ê¡¢Æ±°ì¤Îʸ»úÎó¤Ç¤¹¡£

     s = "Olho  d'agua" 
     s = 'Olho  d\'agua'

Æó½Å¤Î³Ñ³ç¸Ì¤âʸ»úÎó¤ò°Ï¤à¤Î¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£Æó½Å°úÍÑÉä¤ä°ì½Å°úÍÑÉä¤È°Û¤Ê¤ê¡¢¤³¤ÎÃæ¤Ç¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤¬²ò¼á¤µ¤ì¤Þ¤»¤ó¡£¤Þ¤¿ÆâÉô¤ËÆþ¤ì»Ò¤Îʸ»úÎó¤ò´Þ¤à¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

Îã:

     s = [[This is a text
     that crosses
     a string more than and contains one 
     string nested:  [[nested]] in the end!]]
´Ø¿ô

Lua ¤Î´Ø¿ô¤Ï¥Õ¥¡¡¼¥¹¥È¥¯¥é¥¹¤Î·¿¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢´Ø¿ô¤ÏÊÑ¿ô¤ËÂåÆþ¤·¤¿¤ê¡¢Â¾¤Î´Ø¿ô¤Ø°ú¿ô¤È¤·¤ÆÅϤ·¤¿¤ê¡¢Ìá¤êÃͤȤ·¤ÆÊÖ¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£´Ø¿ô¤ÎÄêµÁ¤ÏÂç°èÊÑ¿ô¤ËÃͤòÂåÆþ¤¹¤ë¤³¤È¤ÈƱ¤¸¤Ç¡¢´Ø¿ô¤Î»ý¤Ä¥×¥í¥°¥é¥à¤¬Ãͤˤʤê¤Þ¤¹(6»²¾È)¡£ÂåÆþ¤µ¤ì¤¿Âç°èÊÑ¿ô¤Ï´Ø¿ô·¿¤ÎÃͤò»ý¤Á¤Þ¤¹¡£´Ø¿ôÄêµÁ¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¤³¤³¤Ç¡¢ÊÑ¿ô func1¤Ë´Ø¿ô·¿¤ÎÃͤ¬ÂåÆþ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

     function func1  (...) 
¡¡      ... 
     end
¡¡
¤³¤ì¤Ï¼¡¤Î¤è¤¦¤Ê´Ø¿ô¸Æ¤Ó½Ð¤·¤ò¹Ô¤¦¤³¤È¤Ç¼Â¹Ô¤Ç¤­¤Þ¤¹¡£
¡¡
     func1(...)
¥æ¡¼¥¶¥Ç¡¼¥¿

¥æ¡¼¥¶¥Ç¡¼¥¿·¿¤òÍѤ¤¤ë¤³¤È¤Ç¡¢ C ¸À¸ì¤ÎÊÑ¿ô¤ò Lua ¤ÎÊÑ¿ô¤ËÂåÆþ¤Ç¤­¤Þ¤¹¡£ ¥æ¡¼¥¶¥Ç¡¼¥¿·¿¤Ï C ¸À¸ì¤Î void * ·¿¤ËÁêÅö¤·¡¢C ¸À¸ì¤ÎÊÑ¿ô¤ò Lua ¤ÎÊÑ¿ô¤Ç°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ÂåÆþ¤ÈÅù²ÁÀ­¤ÎȽÄê°Ê³°¤Î±é»»°Ê³°¤Ï¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤¬¡¢ Lua¸À¸ì ¤È C ¤ò·ë¹ç¤¹¤ë¥×¥í¥° ¥é¥à¤ò½ñ¤¯¤Î¤ËÊØÍø¤Ç¤¹¡£¤·¤«¤·¡¢Lua ¸À¸ì¤Î¤ß¤Ç¥×¥í¥°¥é¥à¤ò½ñ¤¯»þ¤Ë¤ÏÍѤ¤¤ë¤³ ¤È¤Ï¤Ç¤­¤Þ¤»¤ó¤·¡¢Lua¸À¸ì Ãæ¤Ç¤³¤Î·¿¤ÎÃͤòľÀÜÀ¸À®¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤»¤ó¡£

¥Æ¡¼¥Ö¥ë

¥Æ¡¼¥Ö¥ë·¿¤Ï Lua ¤Ë¤ª¤±¤ë¼çÍפʷ¿¤Ç¤¹¡£¥Æ¡¼¥Ö¥ë·¿¤ÏÏ¢ÁÛÇÛÎó¤ò¼Â¸½¤·¤Æ ¤ª¤ê¡¢nil °Ê³°¤Î¾¤ÎǤ°Õ¤Î·¿¤Î¥¤¥ó¥Ç¥¯¥¹¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥Æ¡¼¥Ö¥ë·¿¤òÍѤ¤¤ë¤³¤È¤Ç¡¢¥Ù¥¯¥È¥ë¡¢¥ê¥¹¥È¡¢¥ì¥³¡¼¥ÉÅù¤Î·¿¤òƱ°ì¤Î¹½Â¤¤ÇºîÀ®¤Ç¤­¤Þ¤¹¡£¥Æ¡¼¥Ö¥ëÀ¸À®¤Î¹½Ê¸¤òÀâÌÀ¤¹¤ëÁ°¤Ë£±¤ÄÎã¤ò¼¨¤·¤Þ¤¹¡£°Ê²¼¤Ï¶õ¤Î¥Æ¡¼¥Ö¥ë¤òÌÀ¼¨Åª¤ËºîÀ®¤·¤Æ a ¤ËÂåÆþ¤·¤Þ¤¹¡£

     a = {  }

¤³¤Î¥Æ¡¼¥Ö¥ë¤Ë¸å¤«¤é¥Õ¥£¡¼¥ë¥É¤òÄɲ乤뤳¤È¤â²Äǽ¤Ç¤¹¡£ ¥Æ¡¼¥Ö¥ë¤Ë´Ø¤·¤Æ¤Ï7Àá¤Ç¾Ü½Ò¤·¤Þ¤¹¡£

5. ÂåÆþ¤È±é»»

Á°½Ò¤Î¤è¤¦¤Ë Lua ¤ÎÊÑ¿ô¤Ï·¿¤ò»ý¤¿¤º¡¢ÊÑ¿ô¤Ï¤¤¤í¤¤¤í¤Ê·¿¤ÎÃͤòÊÝ»ý¤·¤Þ¤¹¡£Lua ¤ÎÊÑ¿ô¤ÏưŪ¤Ë·¿¤Å¤±¤µ¤ì¡¢Ãͤ¬ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤ë»þ¤ËÆÃÄê¤Î£±¤Ä¤Î·¿¤ò»ý¤Á¤Þ¤¹¡£Æ±¤¸ÊÑ¿ô¤ËÊ̤ÎÃͤ¬ÂåÆþ¤µ¤ì¤ì¤Ð¡¢ÊÑ¿ô¤Ï£² ÅÙÌܤËÂåÆþ¤µ¤ì¤¿Ãͤò»ý¤Á¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ£²ÅÙÌܤÎÂåÆþ¤ÎÁ°¤Ë¤Ï¡¢¤½¤ÎÊÑ¿ô¤Ï¤¢¤ë£±¤Ä¤Î·¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢ÂåÆþ¤Î¸å¤Ë¤ÏÊ̤η¿¤ÎÃͤò»ý¤Ã ¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ÊÑ¿ô¤¬»ý¤ÄÃͤ˱黻¤ò¹Ô¤¦¤È¤­¡¢¤½¤ÎÃͤ¬¹Ô¤¦±é»»¤ËÍ­¸ú¤Ê¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤«¤Ï¼Â¹Ô»þ¤Ë¥Á¥§¥Ã¥¯¤µ¤ì¤Þ¤¹¡£Î㤨¤Ð´Ø¿ô¤òÃͤȤ· ¤Æ»ý¤ÄÊÑ¿ô¤Ë²Ã»»¤ò¹Ô¤ª¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¼Â¹Ô»þ¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹(µÓÃí£²)¡£

¡ÝÄ̾ï¤ÎÂåÆþ¤È¿½ÅÂåÆþ¡Ý

Á°Àá¤Ç¤Ï´Êñ¤ÊÂåÆþ¤ÎÎã¤ò¼¨¤·¤Þ¤·¤¿¡£Lua ¤Ç¤Ï¿½ÅÂåÆþ¤â²Äǽ¤Ç¡¢ £±²ó¤ÎÂåÆþ¤Ç£²¤Ä¤Î°Û¤Ê¤ëÂåÆþÁàºî¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

     s, v =  "Language Lua", 2

¤³¤ÎÎã¤Ï "Language Lua" ¤È¤¤¤¦Ê¸»úÎó¤òÊÑ¿ô s ¤ËÂåÆþ¤·¡¢ 2 ¤È¤¤¤¦¿ôÃͤòÊÑ¿ô v¤ËÂåÆþ¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢º¸ÊÕ¤ÎÊÑ¿ô¤Î¿ô¤¬±¦ÊÕ¤ÎÃͤοô¤È°Û¤Ê¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£¤½¤Î¾ì¹ç¤Ë¤Ï º¸ÊÕ¤ÎÊÑ¿ô¤Ë nil ¤¬Æþ¤ì¤é¤ì¤ë¤«¡¢±¦ÊÕ¤ÎÃͤ¬¼Î¤Æ¤é¤ì¤Þ¤¹¡£

     a, b = 2 
     c, d = 2, 4, 6

¤³¤ÎÎã¤Ç¤Ï a ¤Ë 2¡¢ b ¤Ë nil ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£ ¤Þ¤¿ c ¤Ë¤Ï 2¡¢ d ¤Ë¤Ï 4 ¤¬ÂåÆþ¤µ¤ì¡¢6 ¤È¤¤¤¦ÃͤϼΤƤé¤ì¤Þ¤¹¡£Â¿½ÅÂåÆþ¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢ÊÑ¿ô¤ÎÃͤθò´¹¤ò£±¤Ä¤ÎÌ¿Îá¤Ç½ñ¤¯¤³¤È¤¬¤Ç ¤­¤Þ¤¹¡£

     a,  b = b, a

¤³¤ÎÎã¤Ç¤Ï a ¤¬»ý¤Ã¤Æ¤¤¤¿Ãͤ¬ b ¤Ë¡¢ b ¤¬»ý¤Ã¤Æ¤¤¤¿ÃÍ ¤¬ a ¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£¤è¤Ã¤Æ¡¢°ì»þŪ¤ÊÊÑ¿ô¤òÍѰդ¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ (µÓÃí£²: ¤³¤Î¿¶Éñ¤¤¤Ï¥¿¥°´Ø¿ô¤òÍѤ¤¤ë¤³¤È¤ÇÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ Lua »²¾È¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¡£)

¡Ý±é»»»Ò¡Ý

Lua¸À¸ì¤Ë¤Ï¡¢»»½Ñ±é»»»Ò¡¢´Ø·¸±é»»»Ò¡¢ÏÀÍý±é»»»Ò¡¢Ê¸»úÎó¤òÏ¢·ë¤¹¤ë±é»»»Ò¤¬¤¢¤ê¡¢¤Þ±é»»¤¬¹Ô¤ï¤ì¤ë¤È¤­¤Ë¡¢¤Ç¤­¤ë¤À¤±¼«Æ°Åª¤Ë·¿ÊÑ´¹¤µ¤ì¤Þ¤¹¡£

¡û»»½Ñ±é»»

Lua ¤Ë¤Ï°ìÈ̤λ»½Ñ±é»»»Ò¤¬¤¢¤ê¤Þ¤¹¡££²¹à±é»»»Ò¤Ë¤Ï + (²Ã»»)¡¢ - (¸º»»)¡¢ *(ÀÑ»»)¡¢ / (½ü»») ¤¬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿Éä¹çȿž¤Î - ¤¬¤¢¤ê¤Þ¤¹¡£ ±é»»½ç½ø¤òÊѤ¨¤ë¤¿¤á¡¢³ç¸Ì¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ °Ê²¼¤ÏÀµ¤·¤¤¼°¤ÎÎã¤Ç¤¹¡£

     a = 2 *  3.4 
     b = (a + 1) / 3.4 
     c = 2 *  (-3)¡¡¡¡

»»½Ñ±é»»»Ò¤Ï¿ôÃÍ·¿¤ÎÃͤˤΤ߻ÈÍѤǤ­¤Þ¤¹(¿ôÃÍ·¿¤ËÊÑ´¹²Äǽ¤Êʸ»úÎó¤ËÂФ·¤Æ¤â²Äǽ¤Ç¤¹¡£"¼«Æ°Åª¤ÊÊÑ´¹" ¤ÎÀá¤ò»²¾È)¡£±é»»»Ò ^ ¤ÏÄ̾ï¤Ï¶Ò¾è¤Ç¡¢Lua ¸À¸ì¤Î¿ô³Ø´Ø¿ô¥é¥¤¥Ö¥é¥ê¤¬»È¤ï¤ì¤Þ¤¹¡£¤³¤Î£²¹à±é»»»Ò ^ ¤Ï¹â¤¤Í¥Àè½ç°Ì¤Ç½èÍý¤µ¤ì¤Þ¤¹¤¬¡¢ÆâÉôŪ¤Ë¤Ï¡¢¥¿¥°´Ø¿ô¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹(Lua »²¾È¥Þ¥Ë¥å¥¢¥ë»²¾È)¡£

¡û´Ø·¸±é»»»Ò

Lua ¤Ë¤Ï°Ê²¼¤Î´Ø·¸±é»»»Ò¤¬¤¢¤ê¤Þ¤¹¡£

             <       ¾®¤µ¤¤ 
             >       Â礭¤¤ 
             <=      ¾®¤µ¤¤¤«Åù¤·¤¤ 
             >=      Â礭¤¤¤«Åù¤·¤¤ 
             ==      Åù¤·¤¤ 
             ~=      °Û¤Ê¤ë

´Ø·¸±é»»»Ò¤Ï¡¢·ë²Ì¤¬µ¶¤Î»þ nil ¤òÊÖ¤·¡¢¿¿¤Î»þ 1 ¤òÊÖ¤·¤Þ¤¹¡£

     a = 4 < 3 
     b = 4 > 3   

¤³¤ÎÎã¤Ç¤Ï a ¤Ë nil ¤¬ÂåÆþ¤µ¤ì¡¢ b ¤Ë 1 ¤¬ÂåÆþ¤µ¤ì¤Þ ¤¹¡£±é»»»Ò >,<,>=,<= ¤Ï¿ôÃÍ·¿¤Þ¤¿¤Ïʸ»úÎ󷿤ÎÃͤǻÈÍѤǤ­¡¢¿¿µ¶¤ÎȽÃǤò¹Ô¤¤¤Þ¤¹¡£ ¤½¤·¤Æ¡¢¤½¤ì¤Ï¥¿¥°´Ø¿ô¤ò»È¤¦¤³¤È¤ÇÊѹ¹¤Ç¤­¤Þ¤¹ (Lua »²¾È¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È)¡£ Åù²Á±é»»»Ò (==) ¤Ï¡¢¤Ï¤¸¤á¤ËÈæ³Ó¤µ¤ì¤ëÃͤη¿¤¬Åù¤·¤¤¤«¤òÄ´¤Ù¡¢ °Û¤Ê¤ë¾ì¹ç¤Ë¤Ï nil ¤òÊÖ¤·¤Þ¤¹¡£·¿¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢Ãͤ¬Åù¤·¤¤¤« ¤òÄ´¤Ù¤Þ¤¹¡£ ¿ôÃͤäʸ»úÎó¤ÎÅù¤·¤µ¤ÏÄ̾ï¤Î´ð½à¤ÇȽÃǤµ¤ì¤Þ¤¹¡£¥Æ¡¼¥Ö¥ë¡¢´Ø¿ô¡¢¥æ¡¼¥¶¥Ç¡¼¥¿¤Ï»²¾È¤¬Èæ³Ó¤µ¤ì¤Þ¤¹¡£ Î㤨¤Ð£²¤Ä¤Î¥Æ¡¼¥Ö¥ë¤Î¾ì¹ç¡¢¤½¤Î£²¤Ä¤Î¥Æ¡¼¥Ö¥ë¤¬Æ±°ì¤ÎÂоݤǤ¢¤ë¤«¤É¤¦¤«¤ÇȽÃǤµ¤ì¤ë¤Î¤Ç¡¢Æ±¤¸Í×ÁǤò»ý¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤Ç¤ÏȽÃǤµ¤ì¤Þ¤»¤ó¡£ ÈóÅù²Á±é»»»Ò (~=) ¤ÏÅù²Á±é»»»Ò¤ÎµÕ¤Ç¤¹¡£

¡ûÏÀÍý±é»»»Ò

ÏÀÍý±é»»»Ò¤Ï¡É¤«¤Ä¡É¡¢¡É¤Þ¤¿¤Ï¡É¡¢¡É¤Ç¤Ê¤¤¡É¤Î£³¤Ä¤Ç¤¹¡£

         and     ¤«¤Ä 
         or      ¤Þ¤¿¤Ï 
         not     ¤Ç¤Ê¤¤   

and ¤ä or ¤¬Ê£¿ô¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢º¸¤«¤é±¦¤Ëɾ²Á¤µ¤ì¤ë¤Î¤Ç¡¢Á´¤Æ¤Î±é»»¤¬É¾²Á¤µ¤ì¤ëÁ°¤Ë¡¢¼°¤ÎÃͤ¬·è¤Þ¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£

     a = 23 
     b = 15 
     c = a < 20  or  b > a 
     d = a < 20 and  b > a   

¤³¤ÎÎã¤Ç¤Ï¡¢ c ¤È d ¤Ï nil ¤Ë¤Ê¤ê¤Þ¤¹¡£ d ¤Î¾ì¹ç¡¢¤Þ¤º a<20 ¤¬µ¶¤È¤Ê¤ê¡¢ÏÀÍý±é»»»Ò and ¤Ë¤è¤Ã¤Æ·ë¹ç¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢b>a ¤òɾ²Á¤¹¤ëɬÍפϤʤ¯¡¢¤³¤Î¼°¤Ëµ¶¤Ë¤Ê¤ê¤Þ¤¹¡£

¡ûÏ¢·ë±é»»»Ò

£²¤Ä¤Îʸ»úÎó¤òÏ¢·ë¤¹¤ë±é»»»Ò¤Ï¡¢Lua ¤Ç¤Ï2¤Ä¤Î¥Ô¥ê¥ª¥É( ..) ¤Ç ɽ¤µ¤ì¤Þ¤¹¡£Ï¢·ë±é»»»Ò¤Ï£²¤Ä¤Îʸ»úÎó¤òÏ¢·ë¤·¤¿Ê¸»úÎó¤òÊÖ¤·¤Þ¤¹¡£

     a = "Language" 
     b = "Lua" 
     c = a .. " " ..  b

¤³¤ÎÎã¤Ç¤Ï a ¤ÎÃͤˣ±Ê¸»ú¶õÇò¤¬Â³¤­¡¢b ¤ÎÃͤ¬¤Ä¤Ê¤¬¤Ã¤¿¤â¤Î¡¢¤Ä¤Þ¤ê "Language Lua" ¤È¤¤¤¦Ê¸»úÎó¤¬ÊÑ¿ô c ¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£

Ä´À°

Lua¤Ç¤Ï¼«Æ°Åª¤Ë·¿¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£Ê¸»úÎó¤Ë»»½Ñ±é»»»Ò¤¬»ÈÍѤµ¤ì¤Æ¤¤¤Æ¡¢¤½¤Îʸ»úÎ󤬿ôÃͤξì¹ç¡¢¿ôÃÍ·¿¤Ø¤ÎÊÑ´¹¤¬¤µ¤ì¤Æ±é»»¤µ¤ì¤Þ¤¹¤¬¡¢ÊÑ´¹¤Ç¤­¤Ê¤±¤ì¤Ð¡¢¼Â¹Ô»þ¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£

     b = "53" 
     c = 2 + b¡¡¡¡

¤³¤ÎÎã¤Ç¤Ïʸ»úÎó "53" ¤Ï±é»»¤ÎÁ°¤Ë¿ôÃͤËÊÑ´¹¤µ¤ì¡¢ c ¤Ë¤Ï 55 ¤¬ ÂåÆþ¤µ¤ì¤Þ¤¹(ÊÑ¿ô b ¤Ïʸ»úÎ󷿤ÎÃͤò»ý¤Ã¤¿¤Þ¤Þ¤Ç¤¹)¡£ ¾Êý¤Ç¡¢Ê¸»úÎó¤¬É¬ÍפÊʸ̮¤Ç¿ôÃͤò»È¤Ã¤¿¾ì¹ç¤Ë¤Ï(Ï¢·ë±é»»»Ò¤Ê¤É)¡¢ ¿ôÃͤÏÂбþ¤¹¤ëʸ»úÎó¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£¿ôÃͤ¬´°Á´¤Ê¤â¤Î¤Ç¤¢¤ì¤Ð¡¢¾®¿ô¤ä»Ø¿ô¤ÏÅÀ¤Ê¤·¤Îʸ»úÎó¤Ë¤Ê¤ê¤Þ¤¹¡£ ¿ôÃͤ¬Ê¬¿ô¤ò´Þ¤à¾ì¹ç¤Ë¤Ï¡¢¾®¿ô¤ä»Ø¿ô¤ò´Þ¤à¤³¤È¤¬¤¢¤ê¤Þ¤¹(µÓÃí£³)¡£ Î㤨¤Ð¡¢

     print("result:  " .. 23)

¤Ï¼¡¤Î¤è¤¦¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£

     result:  23.¡¡¡¡

tonumber ¤È¤¤¤¦Lua¸À¸ì¤Îɸ½à´Ø¿ô¤Ï¡¢²Äǽ¤Ê¾ì¹ç¤Ïʸ»úÎó¤ò¿ôÃÍ·¿¤ËÊÑ´¹¤·¤Þ¤¹¡£¿ôÃͤòʸ»úÎó¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï¡¢ ɬÍפ˱þ¤¸¤Æ tostring ´Ø¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹(9»²¾È¡¢ sprintf ¤Ç %.16g ¤Î½ñ¼°¤ÇÊÑ´¹¤·¤Þ¤¹)¡£Ê£¿ô¤Î±é»»»Ò¤¬»È¤ï¤ì¤Æ¤¤¤ë¾ì¹ç¤ÏÍ¥Àè½ç°Ì¤¬¤¢¤ê¡¢¼¡¤Î½ç¤Ë±é»»¤µ¤ì¤Þ¤¹¡£¤Þ¤¿³ç¸Ì¤òÍѤ¤¤Æ±é»»½ç½ø¤òÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¡¡

     ^
     not   - (ñ¹à) 
     *     / 
     +     -
     ..
     <     >    <=    ~=    == 
     and   or¡¡¡¡

6. ή¤ì¤ÎÀ©¸æ¤È¶É½êÊÑ¿ô

Lua ¤Ë¤Ï¥×¥í¥°¥é¥à¸À¸ì¤È¤·¤Æ°ìÈÌŪ¤Ê½èÍýÀ©¸æ¤Îµ¡Ç½¤¬¤¢¤ê¡¢°ì·²¤ÎÌ¿Îá¤ò¤Þ¤È¤á¤¿¤ê¡¢¤µ¤é¤Ë²¿²ó¤â¼Â¹Ô¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Þ¤¿ Lua ¤Ç¤Ï¡¢Àë¸À¤µ¤ì¤¿¥Ö¥í¥Ã¥¯Ãæ¤Î¤ß¤ÇÍ­¸ú¤Î¶É½êÊÑ¿ô¤ÎÀë¸À¤ò¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

¾ò·ïʸ ( if )

Lua ¤Î´ðËÜŪ¤Ê¾ò·ïʸ¤Ï if ¤Ç¤¹¡£ if ʸ¤Î·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

    if  exp then 
¡¡       ¥Ö¥í¥Ã¥¯ 
     end¡¡¡¡

¤Þ¤¿¤Ï¡¢

     if exp then 
       ¥Ö¥í¥Ã¥¯1 
      else 
        ¥Ö¥í¥Ã¥¯2 
      end¡¡¡¡

¤Þ¤¿¤Ï¡¢

     if exp1  then 
        ¥Ö¥í¥Ã¥¯£± 
      elseif exp2 then 
       ¥Ö¥í¥Ã¥¯2  
       ... 
      elseif exp N then 
        ¥Ö¥í¥Ã¥¯N 
      else 
       ¥Ö¥í¥Ã¥¯N + 1 
      end 

¤Ï¤¸¤á¤Î·Á¼°¤Ç¤Ï¡¢¼° exp ¤¬ nil ¤Ç¤Ê¤¤Ãͤξì¹ç¤Ë¥Ö¥í¥Ã¥¯¤¬¼Â¹Ô¤µ¤ì¤Þ ¤¹¡££²ÈÖÌܤηÁ¼°¤Ç¤Ï¡¢¼° exp ¤¬ nil ¤Î¾ì¹ç¤Ë¥Ö¥í¥Ã¥¯ 2 ¤¬¼Â¹Ô¤µ¤ì¡¢ ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¥Ö¥í¥Ã¥¯ 1 ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡££³ÈÖÌܤηÁ¼°¤Ç¤Ï¡¢Â¿¤¯¤Î¾ò·ï¤Ë¤â¤È¤Å¤¤¤Æ if-then-elseif-then- ... -else-end ¤Ç¾ò·ïȽÃǤ¹¤ëÎó¤ò¼¨¤·¤Þ¤·¤¿¡£¾åµ­¤ÎÎã¤Ç¤Ï¡¢¼° exp1 ¤¬¿¿¤Ê¤é¤Ð( nil ¤Ç̵¤¤¤Ê¤é¤Ð)¥Ö¥í¥Ã¥¯ 1 ¤¬¼Â¹Ô ¤µ¤ì¡¢¼° exp2 ¤¬¿¿¤Ê¤é¤Ð ¥Ö¥í¥Ã¥¯ 2 ¤¬¼Â¹Ô¤µ¤ì¡¢...¡¢Á´¤Æ¤Î¼°¤¬µ¶¤Ê¤é¤Ð ( nil ¤ÈÅù¤·¤¤¤Ê¤é¤Ð) ¥Ö¥í¥Ã¥¯N+1 ¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

ºÇ½é¤Ë¾ò·ï¼°¤¬¤¢¤ë·«¤êÊÖ¤· (while)

Lua ¤Ë¤Ï·«¤êÊÖ¤·¤òµ­½Ò¤¹¤ë¤Î¤Ë£²¼ïÎà¤ÎÌ¿Î᤬¤¢¤ê¤Þ¤¹¡£ while ¤È repeat ¤Ç¤¹¡£ while ¤Ç¤Ï·«¤êÊÖ¤·¤ÎÃæ¿È¤ò¼Â¹Ô¤¹¤ë¤«¤É¤¦¤«¤ÎȽÃǤ¬ÀèÆ¬¤Ç¤Ê¤µ¤ì¤Þ¤¹¡£°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

     while expr do 
       ¥Ö¥í¥Ã¥¯ 
     end¡¡¡¡

¼° expr ¤¬¿¿¤Ç¤¢¤ë´Ö( nil ¤Ç¤Ê¤¤´Ö)¡¢¥Ö¥í¥Ã¥¯Æâ¤ÎÌ¿Î᤬¼Â¹Ô ¤µ¤ì¤Þ¤¹¡£

Îã¤È¤·¤Æ¡¢ÊÑ¿ô n ¤Î³¬¾è¤ò·×»»¤¹¤ë¼¡¤Î¥×¥í¥°¥é¥à¤ò¼¨¤·¤Þ¤¹¡£

     f =  1              --- 1 ¤Î³¬¾è 
     i =  n              --- ·«¤êÊÖ¤·¤òÀ©¸æ¤¹¤ëÊÑ¿ô 
     while i > 0  do 
      f = f * i 
      i = i - 1 
     end¡¡¡¡

·«¤êÊÖ¤·¤ò¼Â¹Ô¤·½ª¤¨¤¿¸å¤Ë¤Ï¡¢ f ¤Ï n ¤Î³¬¾è¤ÎÃͤò»ý¤Á¡¢ i ¤Ï 0 ¤Ë¤Ê¤ê¤Þ¤¹(·«¤êÊÖ¤·¤Î½ªÎ»¾ò·ï)¡£

ºÇ¸å¤Ë¾ò·ï¼°¤¬¤¢¤ë·«¤êÊÖ¤· (repeat)

·«¤êÊÖ¤·¤ÎÃæ¿È¤ò¼Â¹Ô¤¹¤ë¤«¤É¤¦¤«¤ÎȽÃǤòºÇ¸å¤Ë¹Ô¤¦¤Î¤¬ repeat ¤Æ ¤¹¡£°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

     repeat 
      ¥Ö¥í¥Ã¥¯ 
     until expr

repeat ¤Ç¤Ï¡¢¥Ö¥í¥Ã¥¯Æâ¤ÎÌ¿Îá¤ÏºÇÄã¤Ç¤â£±²ó¼Â¹Ô¤µ¤ì¤Þ¤¹ (·«¤êÊÖ¤·¤ò¼Â¹Ô¤¹¤ë¤«¤É¤¦¤«¤ÎȽÃǤϷ«¤êÊÖ¤·¤ÎºÇ¸å¤Ç¤·¤«¹Ô¤ï¤ì¤Þ¤»¤ó)¡£¤Þ¤¿¼° expr ¤¬¿¿¤Ç¤¢¤ë´Ö¡¢·«¤êÊÖ¤µ¤ì¤Þ¤¹¡£ ¾åµ­¤ÈƱ¤¸³¬¾è¤Î·×»»¤ò¹Ô¤¦¥×¥í¥°¥é¥à¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

     f =  1              --- 1 ¤Î³¬¾è
     i =  1              --- ·«¤êÊÖ¤·¤ÎÀ©¸æÊÑ¿ô 
     repeat 
¡¡    f = f * i  
      i = i + 1 
     until i > n¡¡¡¡¡¡¡¡
¶É½êÊÑ¿ô¤ÎÀë¸À

Lua ¤Ç¤ÏÊÑ¿ô¤¬¶É½êŪ¤Ç¤¢¤ë¤³¤È¤òÀë¸À¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£ ¤³¤Î¶É½êÊÑ¿ô¤ÎÀë¸À¤Ï¥Ö¥í¥Ã¥¯Æâ¤Î·ÏÎó¤ÎǤ°Õ¤Î°ÌÃ֤˽ñ¤¯¤³¤È¤¬¤Ç¤­¡¢Àë¸À¤µ¤ì¤¿¥Ö¥í¥Ã¥¯¤¬½ª¤ï¤ë¤ÈÊÑ¿ô¤â̵¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ Âç°èÊÑ¿ô¤ÈƱ¤¸Ì¾Á°¤Î¶É½êÊÑ¿ô¤òÀë¸À¤¹¤ë¤È¡¢°ì»þŪ¤ËÂç°èÊÑ¿ô¤ò±£¤·¤Þ¤¹ (¶É½êÊÑ¿ô¤¬Àë¸À¤µ¤ì¤¿¥Ö¥í¥Ã¥¯Æâ¤Ç)¡£ ¥×¥í¥°¥é¥àÃæ¤Ë¤½¤ÎÊÑ¿ô̾¤¬¸½¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¶É½êÊÑ¿ô¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£¶É½êÊÑ¿ô¤ÎÀë¸À»þ¤Î½é´ü²½¤Ï¼¡¤Î¤è¤¦¤Ê¹½Ê¸¤Ë¤Ê¤ê¤Þ¤¹¡£ Îã¤È¤·¤Æ°Ê²¼¤Î¥×¥í¥°¥é¥à¤ò¼¨¤·¤Þ¤¹¡£

     a =  2                --- Âç°èÊÑ¿ô¤Ë2¤òÂåÆþ 
     if a > 0  then 
      local  b = a         --- a ¤ÎÃÍ(2)¤ò½é´üÃͤȤ·¤Æ¶É½êÊÑ¿ô b  ¤òÀë¸À 
      a = a + 1            --- Âç°èÊÑ¿ô a ¤Ë 1  ¤ò²Ã¤¨¤ë 
      local  a = b         --- b ¤ÎÃͤò½é´üÃͤȤ·¤Æ¶É½êÊÑ¿ô a  ¤òÀë¸À
      print(a)             --- ¶É½êÊÑ¿ô a  ¤ÎÃÍ(2)¤òɽ¼¨ 
     end                   --- ¶É½êÊÑ¿ô a, b ¤ÎÍ­¸úÈϰϤϤ³¤³¤Þ¤Ç 
¡¡
     print(a)              ---  Âç°èÊÑ¿ô a ¤ÎÃÍ(3)¤òɽ¼¨¡¡¡¡¡¡¡¡

£±¤Ä¤ÎÌ¿Îá¤ÇÊ£¿ô¤Î¶É½êÊÑ¿ô¤òÀë¸À¤·¤Æ½é´ü²½¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

     local  a, b, c  =  2,  5+6,  -3¡¡¡¡¡¡¡¡

¤³¤ÎÎã¤Ç¤Ï¡¢ a ¤Ï 2 ¤ò½é´üÃͤȤ·¡¢ b ¤Ï 11 ¤ò¡¢ c ¤Ï -3 ¤ò¤½¤ì¤¾¤ì½é´üÃͤȤ·¤Æ¤¤¤Þ¤¹¡£½é´ü²½¤µ¤ì¤Ê¤¤¶É½êÊÑ¿ô¤ÎÃÍ¤Ï nil ¤È¤Ê ¤ê¤Þ¤¹¡£

7. ´Ø¿ô

Lua ¤Ç¤Ï´Ø¿ô¤Ï¥Õ¥¡¡¼¥¹¥È¥¯¥é¥¹¤Î·¿¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢´Ø¿ô¤ÏÊÑ¿ô¤ËÂåÆþ¤·¤¿¤ê¡¢Â¾¤Î´Ø¿ô¤Ë°ú¿ô¤È¤·¤ÆÅϤ·¤¿¤ê¡¢Ìá¤êÃͤȤ·¤ÆÊÖ¤·¤¿¤ê¤¹¤ë¤³ ¤È¤¬¤Ç¤­¤Þ¤¹¡£´Ø¿ô¤òÄêµÁ¤¹¤ë»þ¤Ë¤Ï¡¢´Ø¿ô¤Î̾Á°¤ò»ý¤ÄÂç°èÊÑ¿ô¤Ë´Ø¿ô¤Îµ¡Ç½¤ò¼Â¸½¤¹¤ë¥× ¥í¥°¥é¥à¤òÂåÆþ¤·¤Þ¤¹¡£Lua ¤Î´Ø¿ô¤ÏÂç°è´Ä¶­Ãæ¤ÎǤ°Õ¤Î¾ì½ê¤ÇÄêµÁ¤Ç¤­¤Þ¤¹¡£´Ø¿ô¤ÎÄêµÁ¤Î°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

     function name ([ °ú¿ô¤Î¥ê¥¹¥È ]) 
      Ì¿Îá¤Î¥Ö¥í¥Ã¥¯ 
     end
   

¤³¤³¤Ç name ¤Ï´Ø¿ô¤¬ÂåÆþ¤µ¤ì¤ëÂç°èÊÑ¿ô¤Î̾Á°¤Ç¤¹¡£°ú¿ô¤Î¥ê¥¹¥È¤Ï´Ø¿ôÆâ¤Î¶É½êÊÑ¿ô¤ÈƱÍͤ˰·¤ï¤ì¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Î»þ¤Î°ú¿ô¤Ç½é´ü²½¤µ¤ì¤Þ¤¹¡£ ´Ø¿ô¸Æ¤Ó½Ð¤·¤Î°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

     name ([ °ú¿ô¤Î¥ê¥¹¥È  ]) 

´Ø¿ô̾¤Î¸å¤Ë³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿£°¸Ä°Ê¾å¤Î°ú¿ô¤Î¥ê¥¹¥È¤ò³¤±¤Æ½ñ¤­¤Þ¤¹¡£ name ¤¬´Ø¿ô¤òÃͤȤ·¤Æ»ý¤¿¤Ê¤¤¾ì¹ç(´Ø¿ô·¿¤ÎÃͤǤÏ̵¤¤¾ì¹ç)¤Ë¤Ï¼Â¹Ô»þ¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹(¥¿¥°´Ø¿ô»²¾È)¡£°ú¿ô¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ ¤Þ¤º°ú¿ô¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ëɾ²Á¤µ¤ì¤Þ¤¹¡£¼¡¤Ë´Ø¿ôÄêµÁ¤Ë»ØÄꤵ¤ì¤¿²¾°ú¿ô¤È¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Ë»ØÄꤵ¤ì¤¿¼Â°ú¿ô¤È¤Î´Ö¤ÇÂбþ¤¬¼è¤é¤ì¤Þ¤¹ (¤³¤Î»þ¤Ë¿½ÅÂåÆþ¤ÈƱÍͤÊÄ´À°¤¬¹Ô¤ï¤ì¤ÆÂбþ¤¬·è¤Þ¤ê¤Þ¤¹)¡£ Lua ¤Ç¤Ï°ú¿ô¤ÏÃÍÅϤ·(by value)¤ÇÅϤµ¤ì¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þÅÀ¤Ç¤Î¼Â°ú¿ô¤ÎÃͤ¬¡¢´Ø¿ô¤Î²¾°ú¿ô¤ÎÃͤ˥³¥Ô¡¼¤µ¤ì¤Æ´Ø¿ôÆâ¤Î¶É½êÊÑ ¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¸µ¤Ç¤Ï¡¢°ú¿ô¤Ë»ØÄꤷ¤¿ÊÑ¿ô¤ÎÃͤϸƤӽФ·»þ¤Î¤Þ¤Þ¤ÇÊѤï¤ê¤Þ¤»¤ó¡£ Lua ¤Î´Ø¿ô¤Ï 0¸Ä¡¢1¸Ä¡¢¤Þ¤¿¤Ï¤½¤ì°Ê¾å¤ÎÃͤò return Ì¿Îá¤Ë¤è¤Ã¤ÆÊÖ¤¹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤è¤Ã¤Æ¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Î»þ¤ËÊÑ¿ô¤Ø¤Î»²¾È¤ò°ú¿ô¤È¤·¤Æ ÅϤ¹É¬Íפ¬¤¢¤ê¤Þ¤»¤ó¡£´Ø¿ô¤Î¼Â¹ÔÃæ¤Ë return Ì¿Î᤬¸½¤ì¤ë¤È¡¢´Ø¿ô ¤Î¼Â¹Ô¤Ï½ªÎ»¤·¤Æ´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿°ÌÃ֤μ¡¤ËÀ©¸æ¤¬Ìá¤ê¤Þ¤¹¡£ return Ì¿Îá¤Î¸å¤Ë¤Ï£°¸Ä°Ê¾å¤Î¼°¤Î¥ê¥¹¥È¤ò½ñ¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£°ìÈÌŪ ¤Î·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

     return [ ¼°¤Î¥ê¥¹¥È ] 

¹½Ê¸µ¬Â§¾å¡¢ return Ì¿Îá¤Ï¥Ö¥í¥Ã¥¯¤ÎºÇ¸å¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤³¤Î¤³¤È¤Ë¤è¤ê¡¢ return Ì¿Îá¤Î¸å¤ËÃÖ¤«¤ì¤Æ·è¤·¤Æ¼Â¹Ô¤µ¤ì¤Ê¤¤±£¤ì¤¿Ì¿Îá¤òËɤ°¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ return ʸ¤¬¥Ö¥í¥Ã¥¯¤ÎºÇ¸å¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢Ê¸Ë¡¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£ ´Ø¿ô¤ÎÌá¤êÃͤϡ¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Î»þ¤Ë½ñ¤«¤ì¤¿ÊÑ¿ô¥ê¥¹¥È¤Ë¹ç¤ï¤»¤ÆÄ´À°¤µ¤ì ¤Þ¤¹¡£Îã¤È¤·¤Æ¡¢ºÂɸ (x, y) ¤ò¹¹¿·¤¹¤ë¼¡¤Î´Ø¿ô¤ò¼¨¤·¤Þ¤¹¡£

     function translate  (x, y, dx, dy) 
      return  x+dx,  y+dy 
     end 

¼¡¤Î¤è¤¦¤Ë´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¹Ô¤ï¤ì¤¿¤È¤¹¤ë¤È¡¢

     a,b = translate(20, 30, 1, 2) ¡¡

a ¤Ë¤Ï 21 (=20+1) ¤¬ÂåÆþ¤µ¤ì¡¢ b ¤Ë¤Ï 32 (=30+2) ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£ ¼¡¤Î¤è¤¦¤Ê´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¾ì¹ç¤Ë¤Ï¡¢

     a = translate(20, 30, 1,  2¡Ë 

´Ø¿ô¤Î(£²¤ÄÌܤÎ)Ìá¤êÃͤϼΤƤé¤ì¡¢21 ¤ò¼õ¤±¼è¤ê¤Þ¤¹¡£¼¡¤Î¤è¤¦¤Ê¸Æ¤Ó½Ð ¤·¤Î¾ì¹ç¤Ë¤Ï¡¢

     a, b, c = translate(20, 30, 1, 2)  

a ¤Ë¤Ï 21 ¤¬ÂåÆþ¤µ¤ì¡¢ b ¤Ë¤Ï 32 ¤¬ÂåÆþ¤µ¤ì¡¢ c ¤Ë¤Ï nil ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£ Ê£¿ô¤ÎÃͤòÊÖ¤¹´Ø¿ô¸Æ¤Ó½Ð¤·¤ÏÃͤΥꥹ¥È¤ÈƱ°ì¤Ë°·¤ï¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤» ¤ó¡£Â¿½ÅÂåÆþ¤ÇÄ´À°¤¬¹Ô¤ï¤ì¤ë»þ¤Ë¤Ï¡¢£±¤ÄÌܤÎÌá¤êÃͤÀ¤±¤¬¹Í褵¤ì¤Þ¤¹¡£Îã¤È¤·¤Æ¡¢¾¯¤·¤Ë°Û¤Ê¤ë£²¤Ä¤ÎÎã¤òµó¤²¤Þ¤¹¡£¤Ï¤¸¤á¤Ë¡¢¼¡¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¾ì¹ç¤Ë¤Ï¡¢

     a, b, c = 10, translate(20, 30, 1, 2)   

a ¤Ë¤Ï 10 ¤¬ÂåÆþ¤µ¤ì¡¢ b ¤Ë¤Ï 21 ¤¬ÂåÆþ¤µ¤ì¡¢ c ¤Ë¤Ï 32 ¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£¤³¤Î¤è¤¦¤Ë´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥ê¥¹¥È¤ÎºÇ¸å¤Î¾ì¹ç¤Ë¤Ï¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤¬£±¤Ä¤º¤é ¤µ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢¼¡¤Î¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢

     a, b, c = translate(20, 30, 1, 2),  10   

¶Ã¤¯¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢´Ø¿ô¤¬ÊÖ¤¹ÃͤθĿô¤Ë¤è¤é¤º£±¤ÄÌܤÎÊÖ¤êÃͤÀ¤±¤¬ °·¤ï¤ì(¤³¤Î¾ì¹ç21)¡¢¤â¤¦£±¤Ä¤ÎÊÖ¤êÃͤΠ32 ¤Ï¼Î¤Æ¤é¤ì¤Þ¤¹¡£¤è¤Ã¤Æ¡¢ a ¤Ë¤Ï 21 ¤¬ÂåÆþ¤µ¤ì¡¢b ¤Ë¤Ï 10 ¤¬ÂåÆþ¤µ¤ì¡¢c¤Ë¤Ïnil¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£ Lua ¤Ç¤Ï²ÄÊѸĤΰú¿ô¤ò¼õ¤±¼è¤ë´Ø¿ô¤òÄêµÁ¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¤³¤ì¤Ï´Ø¿ô ÄêµÁ¤Î°ú¿ô¥ê¥¹¥È¤ÎºÇ¸å¤Ë¥Ô¥ê¥ª¥É¤ò£³¤Ä ( ...) ¤Ä¤±¤ë¤³¤È¤Çɽ¤»¤Þ¤¹¡£¤³¤Î·Á¼°¤Î´Ø¿ô¤Ç¤Ï¼Â°ú¿ô¤È²¾°ú¿ô¤ÎÂбþ¤Å¤±¤À¤±¤ÇÄ´À°¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£°ú¿ô¥ê¥¹¥È¤Ë»ØÄꤵ¤ì¤¿¿ô°Ê¾å¤Î¼Â°ú¿ô¤Ï¡¢ arg ¤È¤¤¤¦Ì¾Á°¤Î°ÅÌۤβ¾ °ú¿ô¤ËÂбþ¤Å¤±¤é¤ì¤Þ¤¹¡£arg¤Ï¾ï¤Ë¥Æ¡¼¥Ö¥ë¤È¤·¤Æ½é´ü²½¤µ¤ì¡¢ ¥Õ¥£¡¼¥ë¥É n ¤Ï;ʬ¤Ê°ú¿ô¤Î¿ô¡¢¥Õ¥£¡¼¥ë¥É1, 2 ... ¤Ë½ç¤Ë¼Â°ú¿ô ¤ÎÃͤ¬Âбþ¤Å¤±¤é¤ì¤Þ¤¹¡£¤Ç¤ÏÎã¤È¤·¤Æ¡¢£²¤Ä¤Î°Û¤Ê¤ë´Ø¿ôÄêµÁ¤ò¤·¤Þ¤¹¡£

     function  f(a, b) end 
     function g(a, b, ...)  end 

¤³¤ì¤é¤Î´Ø¿ô¸Æ¤Ó½Ð¤·¤Ç¤Ï¡¢¼Â°ú¿ô¤È²¾°ú¿ô¤È¤Î´Ö¤Ç¼¡¤Î¤è¤¦¤ÊÂбþ¤Å¤±¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤¹¡£

     ¼Â°ú¿ô           ²¾°ú¿ô 
     f(3)             a=3,  b=nil 
     f(3,  4)         a=3,  b=4 
     f(3, 4, 5)       a=3,  b=4 
¡¡
     g(3)             a=3,  b=nil, arg={ n=0 } 
     g(3,  4)         a=3,  b=4, arg={ n=0  } 
     g(3, 4, 5, 8)    a=3,  b=4, arg={ 5,8; n=2  }   

8. ¥Æ¡¼¥Ö¥ë·¿¤ÈÏ¢ÁÛÇÛÎó

Lua ¤Î¥Æ¡¼¥Ö¥ë¤ÏÏ¢ÁÛÇÛÎó¤Ç¤¢¤ê¡¢¿ôÃͤäʸ»úÎó¤Ê¤É¤Î nil ¤ò½ü¤¯Ç¤ °Õ¤Î·¿¤ÎÃͤò¥¤¥ó¥Ç¥¯¥¹¤È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥Æ¡¼¥Ö¥ë¤Î¤³¤Î½ÀÆðÀ­¤Ï¡¢ Lua Ãæ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Îµ­½Ò¤Î´ðÁäˤʤäƤ¤¤Þ¤¹¡£

¥Æ¡¼¥Ö¥ë¤ÎºîÀ®

¥Æ¡¼¥Ö¥ë¤Ï»È¤¦Á°¤ËÌÀ¼¨Åª¤ËºîÀ®¤¹¤ëɬÍפ¬¤¢¤ê¡¢ { }¤Ç½é´ü²½¤ò¹Ô¤¤¤Þ¤¹¡£¼¡¤Ï¶õ¤Î¥Æ¡¼¥Ö¥ë¤òºîÀ®¤·¡¢t ¤È¤¤¤¦ÊÑ¿ô¤ËÂåÆþ¤¹¤ëÎã¤Ç¤¹¡£

     t = {  }   

¤³¤ì¤Ë¤è¤ê¡¢ÊÑ¿ô t ¤Ï¥Æ¡¼¥Ö¥ë·¿¤ÎÃͤò»ý¤Á¤Þ¤¹¡£ ÂåÆþ¤ÎÎã¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

     t[1] = 13 
¡¡   t[45] = 56 

¥Æ¡¼¥Ö¥ë¤Î¥¤¥ó¥Ç¥¯¥¹¤ÎÃͤ˾å¸Â¤Ï¤Ê¤¯¡¢¥Æ¡¼¥Ö¥ë¤Î¼¡¸µ¤ÏɬÍפ˱þ¤¸ ¤Æ¼«Æ°Åª¤ËÊѹ¹¤µ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢¼¡¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

     t["name"] = t[1] + 2 

name ¤È¤¤¤¦Ê¸»úÎó¤Î¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ë¥Æ¡¼¥Ö¥ëÃæ¤ÎÃͤȤ·¤Æ¡¢ ¥¤¥ó¥Ç¥¯¥¹ 1¤ËÂбþ¤¹¤ëÃÍ(¤³¤³¤Ç¤Ï 13)¤Ë 2 ¤ò²Ã¤¨¤¿ÃͤòÂåÆþ¤·¤Þ¤¹¡£¤è¤Ã ¤Æ¥¤¥ó¥Ç¥¯¥¹"name" ¤ËÂбþ¤¹¤ëÃÍ¤Ï 15 ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤Þ¤¿°Ê²¼¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

     t[t] =  5

¤³¤ì¤Ï t ¤È¤¤¤¦¥Æ¡¼¥Ö¥ë·¿¤Î¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ëÃͤȤ·¤Æ 5 ¤òÂåÆþ¤· ¤Æ¤¤¤Þ¤¹¡£¥Æ¡¼¥Ö¥ë t ¤Ï¥¤¥ó¥Ç¥¯¥¹¤È¤·¤ÆÍ­¸ú¤ÊÃͤǤ¹ (°ì¸«º®Í𤷤Ƥ¤¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¤ä¤Ã¤Æ¤¤¤ë¤³¤È¤Ï´Ö°ã¤Ã¤Æ¤¤¤Þ¤»¤ó)¡£ ¤Þ¤¿Ê¸»úÎó¤ò¥¤¥ó¥Ç¥¯¥¹¤Ë¤¹¤ë¤È¤­¤Ë¤Ï¡¢¥Ô¥ê¥ª¥É¤ò»È¤Ã¤¿µ­Ë¡¤òÍѤ¤¤ë¤³¤È ¤¬¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð¡¢

     t["version"]=  4 

¤³¤ì¤Ï°Ê²¼¤ÈÅù²Á¤Ç¤¹¡£

     t.version = 4   

¤³¤Îµ­Ë¡¤ÎÊý¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤Î¤Ç¡¢»È¤¦¤³¤È¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹¡£ ¤¿¤À¤·¡¢Ê¸»úÎ󤬥¹¥Ú¡¼¥¹¤ò´Þ¤à¤È¤­¤Ï¥Ô¥ê¥ª¥É¤ò»È¤Ã¤¿É½µ­¤òÍѤ¤¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£Îã¡§

     t["Rio De  Janeiro "] = 1994 

¿ôÃÍ¤ÈÆ±Íͤˡ¢Ç¤°Õ¤Î·¿¤ÎÃͤò¥Æ¡¼¥Ö¥ë¤ËÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¼¡¤Ë¼¨¤¹¤Î¤Ï¡¢¥Æ¡¼¥Ö¥ët ¤Ø¤ÎÀµ¤·¤¤ÂåÆþ¤ÎÎã¤Ç¤¹¡£

     t[10] = "example" 
     t[2.34] = 12 
     t.tabela, t[0] = 3, 12 
     t[-234] = 0 
     a = "Lua" 
     t[a] = 5  

ºÇ¸å¤ÎÎã¤ÏÃí°Õ¿¼¤¯¸«¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ a ¤Ï "Lua" ¤È¤¤¤¦Ãͤò »ý¤ÄÊÑ¿ô¤È¹Í¤¨¤ë¤È¡¢¤³¤ì¤Ï Lua ¤È¤¤¤¦¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ëÃͤȤ·¤Æ5 ¤òÂåÆþ¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤·¤«¤·¡¢t.a ¤Ït["a"] ¤È Åù²Á¤Ç¤¹¤¬¡¢t[a] ¤È¤Ï°Û¤Ê¤ê¤Þ¤¹¡£ ¤³¤³¤Ç¤Ï t[a] ¤È t.Lua ¤¬Åù²Á¤Ë¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ëÃͤò°ìÅÙ¤âÍ¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤(½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤)¥Æ¡¼ ¥Ö¥ëÃæ¤ÎÃÍ¤Ï nil ¤Ë¤Ê¤ê¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¾å¤ÎÎã¤ÎÂåÆþ¤À¤±¤ò¹Ô¤Ã¤¿¤È¤¹¤ë¤È¡¢

     print(t[999) 

999 ¤È¤¤¤¦¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤¹¤ëÃͤϽé´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¤³¤ÎÌ¿Îá¤Ï nil ¤ò½ÐÎϤ·¤Þ¤¹¡£ ¥Æ¡¼¥Ö¥ëÃæ¤Ë¾¤Î¥Æ¡¼¥Ö¥ë¤òÂåÆþ¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¤Î¤Ç¡¢Â¿¼¡¸µÇÛÎ󤬼¸½¤Ç ¤­¤Þ¤¹¡£Î㤨¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

     m = { } 
     m[1]  = { } 
     m[2]  = { } 
     m[1][1] =  1.0 
     m[2][1] =  0.0 

¤Þ¤¿¼¡¤Î¤è¤¦¤Ë½ñ¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

     s = { } 
     s.dist = { } 
     s.dist.name =  "Language Lua" 
     s.dist.version =  4 
Ãͤò»ØÄꤷ¤¿¥Æ¡¼¥Ö¥ë¤Î½é´ü²½

Lua ¤Ç¤Ï¥Æ¡¼¥Ö¥ë¤ÎºîÀ®»þ¤Ë½é´ü²½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥Æ¡¼¥Ö¥ë¤Î½é´ü²½¤Ï¼¡¤Î¤è¤¦¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

     { ¼°1, ¼°2, ...., ¼°N  } 

¤³¤Î¤è¤¦¤Ë¥Æ¡¼¥Ö¥ë¤òºîÀ®¤¹¤ë { } ¤Î´Ö¤Ë¼°¤Î¥ê¥¹¥È¤ò½ñ¤­¤Þ ¤¹¡£¥ê¥¹¥È¤ÎÍ×ÁǤϤ½¤ì¤¾¤ìɾ²Á¤µ¤ì¡¢£±ÈÖÌܤÎÃͤϥ¤¥ó¥Ç¥¯¥¹ 1 ¤ËÂбþ¤Å¤±¤é¤ì¡¢£²ÈÖÌܤÎÃͤϥ¤¥ó¥Ç¥¯¥¹ 2 ¤Ë¡¢¤È¤¤¤¦¤°¤¢¤¤¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤Æ¼¡¤ÎÎã¤Ï¡¢

     t =  {23, 45, -7, "Lua", 6+4} 

°Ê²¼¤ÈÅù²Á¤Ç¤¹¡£

     t = { } 
     t[1] =  23 
     t[2] =  45 
     t[3] =  -7 
     t[4] =  "Lua" 
     t[5] =  6+4 

½é´ü²½¤ò¹Ô¤Ã¤¿¸å¤Ç¤â¡¢¥Æ¡¼¥Ö¥ë¤Ë¾¤ÎÃͤòÂåÆþ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹¡£ ¥Æ¡¼¥Ö¥ë¤Ë¤Ï¤¤¤Ä¤Ç¤â nil °Ê³°¤ÎǤ°Õ¤Î¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤·¤ÆÇ¤°Õ¤ÎÃͤòÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð½é´ü²½¤Î¸å¤Ë¡¢¼¡¤Î¤è¤¦¤ÊÌ¿Îá¤ò¼Â¹Ô¤¹ ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

t[67] = 0 t["Lua"] = "example"

¥Õ¥£¡¼¥ë¥É¤ò»ØÄꤷ¤¿¥Æ¡¼¥Ö¥ë¤Î½é´ü²½

Lua ¤Ç¤Ï¥Õ¥£¡¼¥ë¥É¤ò»ØÄꤷ¤Æ¥Æ¡¼¥Ö¥ë¤ò½é´ü²½¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹ (ÌõÃí: ¥¤¥ó¥Ç¥¯¥¹ i ¤ËÂбþ¤¹¤ëÃͤò¡¢¥Æ¡¼¥Ö¥ë¤Î¥Õ¥£¡¼¥ë¥É i ¤È¤â¸Æ¤Ó¤Þ¤¹)¡£¡¡

°ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ 
¡¡
     { [ ¼°A ] = ¼°1, [ ¼°B ] = ¼°2...  } 

½é´ü²½¤ÎºÝ¤Ë¡¢¥¤¥ó¥Ç¥¯¥¹¤ÈÃͤÎÂФǤ¢¤ë¥Õ¥£¡¼¥ë¥É¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¥Æ¡¼¥Ö¥ë¤Î¥¤¥ó¥Ç¥¯¥¹¤¬Ê¸»úÎó¤Î¾ì¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ëñ½ã²½¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

     string1 = expr1¡¡

¤è¤Ã¤Æ¼¡¤ÎÎã¤Ï¡¢

     t = { name = "Language Lua  ", [1]= 3.0, [f(x)] = g(y) } 

°Ê²¼¤ÈÅù²Á¤Ç¤¢¤ë¡£

     t = { } 
     t.name = " Language Lua "  
     t[1] = 3.0 
     t.[f(x)] = g(y) 

ƱÍͤˡ¢¥Æ¡¼¥Ö¥ë¤Ë¤Ï¤¤¤Ä¤Ç¤â nil °Ê³°¤ÎǤ°Õ¤Î¥¤¥ó¥Ç¥¯¥¹¤ËÂбþ¤· ¤ÆÇ¤°Õ¤ÎÃͤòÂåÆþ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð½é´ü²½¤Î¸å¤Ë¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

       t["Lua"]="  example " 
ξÊý¤Î·Á¼°¤òº®ºß¤µ¤»¤¿½é´ü²½

¤³¤ì¤Þ¤Ç¤Î£²¤Ä¤Î½é´ü²½¤Î·Á¼°¤òÁȤ߹ç¤ï¤»¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ °ìÈÌŪ¤Ê·Á¼°¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

     table = { ¼°¤Î¥ê¥¹¥È ; ¥Õ¥£¡¼¥ë¥É¤Î¥ê¥¹¥È  } 

¥»¥ß¥³¥í¥ó ¡¨ ¤Ç¶èÀÚ¤é¤ì¤¿Á°È¾¤Ë¡¢Ï¢Â³¤·¤¿¿ôÃÍ¥¤¥ó¥Ç¥¯¥¹¤Ç½é´ü²½ ¤µ¤ì¤ë¼°¤Î¥ê¥¹¥È¤ò½ñ¤­¡¢¸åȾ¤Ë¥Õ¥£¡¼¥ë¥É¤Î¥ê¥¹¥È¤ò½ñ¤­¤Þ¤¹¡£¼¡¤ÎÎã¤Ï¡¢

     t = { nome =  "Linguagem Lua", [1] = 3.0, [f(x)] = g(y) } 
¡¡¡¡ t = { 23,45,-7;
          nome="Linguagem  Lua", 
          versao=3.0, 
¡¡         [4]=80 
     } 

°Ê²¼¤ÈÅù²Á¤Ç¤¹¡£

     t = {  } 
     t[1] = 23 
     t[2] = 45 
     t[3] = -7 
     t.nome = "Linguagem  Lua" 
     t.versao = 3.0 
     t[4] =  80 

Lua ¤¬À¸À®¤¹¤ë¥¨¥é¡¼¤Ï°Ê²¼¤Î¤è¤¦¤Ë°·¤ï¤ì¤Æ¡¢¤Þ¤È¤á¤é¤ì¤Æ¥×¥í¥°¥é¥Þ¤ËÄó ¼¨¤µ¤ì¤Þ¤¹¡£ ¥³¥ó¥Ñ¥¤¥ëÃæ¤ä¼Â¹Ô»þ¤Ë¥¨¥é¡¼¤¬µ¯¤³¤ë¤È¡¢¥¨¥é¡¼½èÍý´Ø¿ô _ERRORMESSAGE ¤¬¼Â¹Ô¤µ¤ì¡¢Lua ¤ò¼Â¹Ô¤¹¤ë´Ø¿ô (lua_dofile, lua_dostring, tolua_dobuffer, lua_callfunction) ¤¬½ªÎ»¤µ¤ì¡¢¥¨¥é¡¼¤Î¾õ¶·¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£ Lua ¤Ï¥¨¥é¡¼½èÍý´Ø¿ô¤ËÂФ·¡¢¥¨¥é¡¼¤ÎÀâÌÀ¤¬½ñ¤«¤ì¤¿Ê¸»úÎó¤ò°ú¿ô¤È¤·¤ÆÍ¿ ¤¨¤Þ¤¹¡£½é´ü»þ¤Î¥¨¥é¡¼´Ø¿ô¤Ïñ¤Ë¤½¤Îʸ»úÎó¤òɸ½à½ÐÎϤ˽ÐÎϤ·¤Þ¤¹¡£ Lua ¤Îɸ½àÆþ½ÐÎϥ饤¥Ö¥é¥ê¤Ï´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¥¹¥¿¥Ã¥¯¤ÎÍúÎòÅù¤Î¾ðÊó¤òɽ¼¨ ¤¹¤ë¤¿¤á¡¢¥¨¥é¡¼½èÍý´Ø¿ô¤òºÆÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£Lua version 4 ¤«¤é¤Ï¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤Î¥¹¥¿¥Ã¥¯¤ÎÍúÎòÅù¤Î¾ðÊ󤬯À¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£

10.ÄêµÁºÑ¤ß¤Î´Ø¿ô

Lua¤Ç¤Ï¾ï¤ËÍøÍѤǤ­¤ë´Ø¿ô¤¬¡¢¥×¥í¥°¥é¥ß¥ó¥°¤ËÍ­ÍѤÊÉôÉʤȤ·¤ÆÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î´Ø¿ô¤Ï¼Â¹Ô´Ä¶­¤¬ÊѤï¤Ã¤Æ¤âÍ­¸ú¤Ç¤¹¡£

dofile(filename)¡¡
filename  ¡¡¼Â¹Ô¤¹¤ë¥Õ¥¡¥¤¥ë̾ 

»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤òLua¸À¸ì¤Î¥×¥í¥°¥é¥à¤È¤·¤Æ¼Â¹Ô¤·¤Þ¤¹¡£¥¨¥é¡¼¤Ç¼Â¹Ô¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï nil ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£Àµ¾ï½ªÎ»¤·¤¿¾ì¹ç¤Ï¥×¥í¥°¥é¥à¤ÎÌá¤êÃͤò¤½¤Î¤Þ¤ÞÊÖ¤·¤Þ¤¹¤¬¡¢¥×¥í¥°¥é¥à¤ÎÌá¤êÃͤ¬ nil ¤Î»þ¤Ë¤Ï¡¢nil ¤Ç¤Ê¤¤²¿¤é¤«¤ÎÃͤˤʤê¤Þ¤¹¡£

(Îã)

     if not dofile("bib.lua") then
         print("It is not possible to open the library of functions") 
     end¡¡
dostring( string [, name ] )

ʸ»úÎó¤òLua¸À¸ì¤Î¥×¥í¥°¥é¥à¤È¤·¤Æ¼Â¹Ô¤·¡¢¤½¤ÎÌá¤êÃͤòÊÖ¤·¤Þ¤¹¡£¼Â¹Ô¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ïnil¤È¤Ê¤ê¡¢À®¸ù¤·¤·¤Ænil¤òÊÖ¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢nil¤Ç¤Ê¤¤²¿¤é¤«¤ÎÃͤˤʤê¤Þ¤¹¡£ (Îã) botao1,botao2,...¤È¤¤¤¦Ì¾Á°¤Î¥Æ¡¼¥Ö¥ë¤ÎÆâÍÆ¤ò½¸Ì󤹤롣

     i  = 1; botao = { } 
     b  = dostring("return botao"..i ) 
     while b do 
        botao[i] = b 
        i = i + 1 
        b = dostring("return  botao"..i) 
     end 
next( table, index )

¥Æ¡¼¥Ö¥ë¤È¤½¤Î¥¤¥ó¥Ç¥¯¥¹¤ò»ØÄꤷ¤Æ¡¢¼¡¤ÎÍ×ÁǤΥ¤¥ó¥Ç¥¯¥¹¤ÈÃͤòÊÖ¤·¤Þ¤¹¡£index¤Ënil¤ò»ØÄꤹ¤ë¤È¡¢°ìÈֺǽé¤ÎÍ×ÁǤΥ¤¥ó¥Ç¥¯¥¹¤ÈÃͤ¬ÆÀ¤é¤ì¤Þ¤¹¡£¤³¤ì¤ò»È¤Ã¤Æ¥Æ¡¼¥Ö¥ë¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤòÎóµó¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥¤¥ó¥Ç¥¯¥¹¤Ï¿ôÃͤξ¤Ë¡¢Ê¸»úÎó¤Ê¤É¾¤Î¥Ç¡¼¥¿·¿¤ò»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£Ìá¤êÃͤϡ¢¥¤¥ó¥Ç¥¯¥¹¤ÈÃͤÎ2¤Ä¤Ç¡¢¼¡¤ÎÍ×ÁǤ¬¤Ê¤¯¤Ê¤ë¤Ènil¤Ë¤Ê¤ê¤Þ¤¹¡£Lua¸À¸ì¤Ç¤Ï¡¢Ê¸»úÎó¤Î¥¤¥ó¥Ç¥¯¥¹¤ò»È¤¦¤È¤­¤âÀë¸À¤Ê¤É¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥¯¥¹¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Ë¤Ï¤½¤ÎÃͤÏnil¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢next()¤Ç¤Ï¸ºß¤¹¤ë¤â¤Î¤À¤±¤ò½ç¤ËÆÀ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Í×ÁǤνçÈ֤ϡ¢Lua¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤Æ¡¢ºîÀ®¤·¤¿½ç¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

(Îã) ¥Æ¡¼¥Ö¥ët¤ÎÆâÍÆ¤ò¤¹¤Ù¤Æ¥×¥ê¥ó¥È¤¹¤ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£

     field,value = next(t, nil)     --¥Æ¡¼¥Ö¥ë¤ÎºÇ½é¤ÎÍ×ÁÇ 
     while field do                 --¸ºß¤¹¤ë¤Þ¤Ç 
       print(field, "=", value)     --ÆâÍÆ¤ò½ÐÎÏ 
       field,value = next(t, field) --¼¡¤ÎÍ×ÁÇ 
     end
nextvar( name )

Âç°èÊÑ¿ô¤ò¤¹¤Ù¤ÆÎóµó¤¹¤ë¤Î¤Ë»È¤¤¤Þ¤¹¡££±¤Ä¤Î¥Ñ¥é¥á¡¼¥¿¡¢¤Ä¤Þ¤êname¤Ç»ØÄꤷ¤¿Âç°èÊÑ¿ô¤Î¼¡¤ÎÂç°èÊÑ¿ô¤òÆÀ¤Þ¤¹¡£nil¤ò»ØÄꤹ¤ë¤È¡¢°ìÈֻϤá¤ÎÂç°èÊÑ¿ô¤¬ÆÀ¤é¤ì¤Þ¤¹¡£Ìá¤êÃͤϡ¢ÊÑ¿ô¤Î̾Á°¤È¤½¤ÎÃͤΣ²¤Ä¤Ë¤Ê¤ê¤Þ¤¹¡£

¡ÊÎã¡Ë Âç°èÊÑ¿ô¤ò¤¹¤Ù¤ÆÎóµó¤¹¤ë¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£

     name,value = nextvar(nil)       --ÀèÆ¬¤Ë¤¢¤ëÂç°èÊÑ¿ô 
     while name do                   --name¤¬Â¸ºß¤¹¤ì¤Ð 
      print(name, "=", value)        --¤½¤ÎÆâÍÆ¤òɽ¼¨ 
      name,value = nextvar(name)     --¼¡¤ÎÂç°èÊÑ¿ô 
     end
type( value )

°ú¿ô¤Ë»ØÄꤵ¤ì¤¿Âоݤη¿¤òʸ»úÎó¤ÇÊÖ¤·¤Þ¤¹¡£Ìá¤êÃͤϡ¢"nil", "number", "string", "table", "function", "userdata" ¤Î¤É¤ì¤«¤Ë¤Ê¤ê¤Þ¤¹¡£

¡ÊÎã¡Ë

     t =  { } 
     print(type(2.4),type("Alo"),type(t),type(t[1]),type(print) 

¡Ê·ë²Ì¡Ë

     number 
     string 
     table 
     nil 
     function
tonumber( e [,base] )

ʸ»úÎ󷿤ˤʤäƤ¤¤ë¿ô»ú¤ò¿ôÃͥǡ¼¥¿¤ËÊÑ´¹¤·¤Þ¤¹¡£ÊÑ´¹¤Ç¤­¤Ê¤«¤Ã¤¿»þ¤Ïnil¤òÊÖ¤·¤Þ¤¹¡££±£°¿Ê¿ô°Ê³°¤Î»þ¤Ï¡¢£²ÈÖÌܤΥѥé¥á¡¼¥¿¤Ë£²¡Á£³£²¤Î¿ôÃͤò»ØÄꤷ¤Þ¤¹¡£

¡ÊÎã¡Ë

     print(tonumber("34.56 "), tonumber("3.2 X"), tonumber(2)) 

¡Ê·ë²Ì¡Ë

     34.56 
     nil 
     2 
tostring( e )

¿ôÃͥǡ¼¥¿¤òʸ»úÎó¥Ç¡¼¥¿¤ËÊÑ´¹¤·¤Þ¤¹¡£

¡ÊÎã¡Ë

     print(tostring(3.2), tostring({10,20,30}),tostring(print))

¡Ê·ë²Ì¡Ë

     3.2 
     table: 0x324a43 
     function: 0x63ed21 
print( expr1, expr2, ... )

Í¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿¤òɸ½à½ÐÎϤ˽ÐÎϤ·¤Þ¤¹¡£½ÐÎϤνñ¼°¤òÀ°¤¨¤ë¤Ë¤Ïformat( )´Ø¿ô¤ò»È¤¤¤Þ¤¹¡£

¡ÊÎã¡Ë

     print( 2*3+2 ) 
     print( "valor = ", valor ) 
error( msg )

¼Â¹Ô»þ¥¨¥é¡¼¤òÀ¸À®¤·¡¢Í¿¤¨¤é¤ì¤¿Ê¸»úÎó¤òɸ½à½ÐÎϤ˽ÐÎϤ·¡¢¼Â¹Ô¤òÃæÃǤ·¤Þ¤¹¡£

call( func, arg [,retmode] )

Í¿¤¨¤é¤ì¤¿´Ø¿ô¤ò¡¢£²ÈÖÌܤΰú¿ô¤Ç¼Â¹Ô¤·¤Þ¤¹¡£arg ¤Ï¥Æ¡¼¥Ö¥ë¤Ç¡¢¿ôÃͤΥ¤¥ó¥Ç¥¯¥¹¤Î½ç¤Ë°ú¿ô¤È¤·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£°ú¿ô¤ÎɬÍפʤ¤¤È¤­¤Ë¤Ï¶õ¤Î¥Æ¡¼¥Ö¥ë¤òÍ¿¤¨¤Þ¤¹¡££³ÈÖÌܤΥѥé¥á¡¼¥¿¤Ë"pack"¤òÍ¿¤¨¤ë¤È¡¢´Ø¿ô¤ÎÌá¤êÃͤϥơ¼¥Ö¥ë¤ËÆþ¤ì¤é¤ì¤Þ¤¹¡£

     a = call( sin, {5} )Ÿþ                a = 0.871557 
     a = call( max, {1,4,5;n=2})           a = 4 
     t = { x=1  } 
     a = call( next,{t,nil;n=2},"pack" )   a={"x",1;n=2} 
assert( value [,message] )

°ú¿ô¤ÇÍ¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿¤¬nil¤Ê¤é¤Ð¥¨¥é¡¼¤Ë¤Ê¤ê¡¢£²ÈÖÌܤΥѥé¥á¡¼¥¿¤ËÍ¿¤¨¤¿Ê¸»úÎó¤ò¥×¥ê¥ó¥È¤·¤Þ¤¹¡£

¡ÊÎã¡Ë

     assert( readfrom(FILE),"cannot open" .. FILE )

11. ¥é¥¤¥Ö¥é¥ê´Ø¿ô

Lua¤Ç¤Ï¡¢¿ô³Ø¡¢Ê¸»úÎó¡¢¥Õ¥¡¥¤¥ëÆþ½ÐÎϤΣ³¤Ä¤Î´ðËܥ饤¥Ö¥é¥ê´Ø¿ô¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£

ʸ»úÎó½èÍý¥é¥¤¥Ö¥é¥ê

ʸ»ú¥­¥ã¥é¥¯¥¿¤ÎÎó¤Ë¤è¤ëʸ»úÎó¤ò°·¤¦ÈÆÍѤδؿô¤È¤·¤Æ¡¢Ê¸»úÎó¤ÎŤµ¤òÄ´¤Ù¤¿¤ê¡¢Éôʬʸ»úÎó¤ò¤È¤Ã¤¿¤ê¤¹¤ë´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£

strfind( str, pattern [, init [, plain ]] )

ʸ»úÎóstr¤ÎÃæ¤Ë¡¢pattern¤Ç»ØÄꤷ¤¿Ê¸»úÎó¤òõ¤·¡¢½é¤á¤Î¾ì½ê¤È½ª¤ï¤ê¤Î¾ì½ê¤Î£²¤Ä¤Î¿ôÃͤ¬Ìá¤êÃͤˤʤê¤Þ¤¹¡£init¤Ç¸¡º÷¤ò»Ï¤á¤ëºÇ½é¤Î¾ì½ê¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£¤Þ¤¿¡¢plain¤Çnil°Ê³°¤À¤Ã¤¿¾ì¹ç¤Ï¡¢¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¥ó¥°¤Îµ¡Ç½¤ò»È¤ï¤º¤Ëñ½ã¤Êʸ»úÎóÈæ³Ó¤ò¹Ô¤¤¤Þ¤¹¡£Ê¸»úÎ󤬸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ïnil¤¬Ìá¤êÃͤȤʤê¤Þ¤¹¡£¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Á¤Ë¥­¥ã¥×¥Á¥ã¤ò»È¤Ã¤¿¾ì¹ç¤Ï¡¢¥­¥ã¥×¥Á¥ã¤ËÂбþ¤¹¤ëʸ»úÎó¤¬Ìá¤êÃͤËÄɲ䵤ì¤Þ¤¹¡£

¡ÊÎã¡Ë

     i, f = strfind("Linguagem Lua 3.0", "Lua")
     print( i, f )

¡Ê·ë²Ì¡Ë

     11 13,

¡ÊÎã¡Ë

     data = "13/4/1997"
     i, f, day, month, year = strfind(data, "(%d*)/(%d*)/(%d*)")
     print( day,month, year )

¡Ê·ë²Ì¡Ë

     13, 4, 1997.
ʸ»ú¥Ñ¥¿¡¼¥ó

ʸ»ú¤Î¼ïÎà¤òɽ¸½¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤Îµ­½Ò¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£

     x                  (x ¤¬ ^$()%.[]*+-? ¤Î¤É¤Îʸ»ú¤Ç¤â¤Ê¤¤¾ì¹ç) ʸ»ú x ¤½¤Î¤â¤Î¤òɽ¤·¤Þ¤¹¡£
     %x¡¡               £ø¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ä¿ô»ú°Ê³°¤Îµ­¹æ¤Ç¡¢¤½¤Îµ­¹æ¼«ÂΤòɽ¤·¤Þ¤¹¡£ÆÃ¼ìʸ»ú¤òɽ¤¹¤Î¤Ë»È¤¤¤Þ¤¹¡£
     .                  ¤¹¤Ù¤Æ¤Îʸ»ú
     %a                 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú
     %A                 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú°Ê³°
     %d                 ¿ôÃÍ¡Ê10¿Ê¿ô¡Ë
     %D                 ¿ôÃͰʳ°
     %l                 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¾®Ê¸»ú
     %L                 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¾®Ê¸»ú°Ê³°
     %s                 ¶õÇòʸ»ú¡Ê¥¹¥Ú¡¼¥¹¡¢¥¿¥Ö¡¢quebras de linha)
     %S                 ¶õÇòʸ»ú°Ê³°
     %u                 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÂçʸ»ú
     %U                 ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÂçʸ»ú°Ê³°
     %w                 ʸ»ú¤È¿ô»ú
     %W                 ʸ»ú¤È¿ô»ú°Ê³°
     [ʸ»ú¥Ñ¥¿¡¼¥óÎó]   »ØÄꤷ¤¿Ê¸»ú¤Î¤¦¤Á¤Î¤É¤ì¤«
     [^ʸ»ú¥Ñ¥¿¡¼¥óÎó]  »ØÄꤷ¤¿Ê¸»ú¤Î¤É¤ì¤Ç¤â¤Ê¤¤

¥Ñ¥¿¡¼¥óÍ×ÁǤϡ¢¼¡¤Î¤¤¤º¤ì¤«¤Ç¤¹¡£

¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó

¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó¤Î¸å¤Ë * ¤ò¤Ä¤±¤¿¤â¤Î¤Ï¡¢¤½¤Îʸ»ú¤Î 0 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤òɽ¤·¤Þ¤¹¡£¥Þ¥Ã¥Á¤¹¤ëÈϰϤ¬¤Ç¤­¤ë¤À¤±Ä¹¤¤Ê¸»úÎó¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó¤Î¸å¤Ë - ¤ò¤Ä¤±¤¿¤â¤Î¤Ï¡¢¤½¤Îʸ»ú¤Î 0 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤Ç¤¹¤¬¡¢ * ¤È¤Ï°Û¤Ê¤ê¡¢°ìÃפ¹¤ëÈϰϤ¬¤Ç ¤­¤ë¤À¤±Ã»¤¤Ê¸»úÎó¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó¤Î¸å¤Ë + ¤ò¤Ä¤±¤¿¤â¤Î¤Ï¡¢¤½¤Îʸ»ú¤Î 1 ²ó°Ê¾å¤Î·«¤êÊÖ¤·¤òɽ¤·¤Þ¤¹¡£°ìÃפ¹¤ëÈϰϤ¬¤Ç¤­¤ë¤À¤±Ä¹¤¤Ê¸»úÎó¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¦Ê¸»ú¥Ñ¥¿¡¼¥ó¤Î¸å¤Ë ? ¤ò¤Ä¤±¤¿¤â¤Î¤Ï¡¢¤½¤Îʸ»ú¤Î 1 ²ó¤Þ¤¿¤Ï0 ²ó¤Î½Ð¸½¤òɽ¤·¤Þ¤¹¡£

¡¦% n¡¡¤³¤³¤Ç n ¤Ï 1 ¤«¤é 9 ¤Þ¤Ç¤Î¿ôÃͤǡ¢n ÈÖÌܤΥ­¥ã¥×¥Á¥ã¤·¤¿Éôʬʸ»úÎó¤òɽ¤·¤Þ¤¹¡£

¡¦%b xy¡¡¤³¤³¤Ç¡¢ x ¤È y ¤Ï°Û¤Ê¤ëʸ»ú¤Ç¡¢ x ¤Ç»Ï¤Þ¤ê y ¤Ç½ª¤ï¤ëʸ»úÎó¤òɽ¤·¤Þ¤¹¡£Î㤨¤Ð¡¢ %b() ¤Ï³ç¸Ì¤ÎÂбþ¤¬Àµ¤·¤¯¼è¤ì¤¿Ê¸»úÎó¤Ë°ìÃפ·¤Þ¤¹¡£

ʸ»ú¥Ñ¥¿¡¼¥ó¤Î·ÏÎó¤Ç¤Ò¤È¤Ä¤Î¥Ñ¥¿¡¼¥ó¤òɽ¸½¤Ç¤­¤Þ¤¹¡£¥Ñ¥¿¡¼¥óÀèÆ¬¤Î ^ ¤ÏÂоÝʸ»úÎó¤ÎÀèÆ¬¤ò°ÕÌ£¤·¤Þ¤¹¡£¥Ñ¥¿¡¼¥óºÇ¸å¤Î $ ¤ÏÂоÝʸ»úÎó¤Î ºÇ¸å¤ò°ÕÌ£¤·¤Þ¤¹¡£¥Ñ¥¿¡¼¥óÃæ¤Î¾¤Î°ÌÃÖ¤ËÃÖ¤«¤ì¤¿¾ì¹ç¤Ï¡¢^ ¤ä $ ¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤¿¤º¡¢¤½¤ì¼«¿È¤òɽ¤·¤Þ¤¹¡£

¥Ñ¥¿¡¼¥óÃæ¤Ë¤Ï³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿¥Ñ¥¿¡¼¥ó¤¬´Þ¤Þ¤ì¤Æ¤¤Î±¾ì¹ç¤Ï¡¢¥­¥ã¥×¥Á¥ã¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¥Þ¥Ã¥Á¥ó¥°¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¥­¥ã¥×¥Á¥ã¤ÎÉôʬ¤Ë¥Þ¥Ã¥Á¤·¤¿Ê¸»úÎó¤ÏÊݸ¤µ¤ì¡¢¸å¤ÇÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥­¥ã¥×¥Á¥ã¤Ïº¸³ç¸Ì¤ËÂбþ¤¹¤ëÈֹ椬¤Ä¤±¤é¤ì¤Þ¤¹¡£

Î㤨¤Ð¡¢"(a*(.)%w(%s *))"¤Ç¤Ï¡¢a*(.)%w(%s *)¤Ë¹çÃפ¹¤ëÉôʬʸ»ú¤¬Â裱ÈÖÌܤΥ­¥ã¥×¥Á¥ã¤Ë¤Ê¤ê¡¢£²ÈÖÌܤË(.)¤Ë¹çÃפ·¤¿°ì¤Ä¤Îʸ»ú¡¢%s *¤¬£³ÈÖÌܤˤʤê¤Þ¤¹¡£

¡ÊÎã¡Ë

     function name (arg1,arg2)
     (function %s*(%a+)(%b()))¡¡
¡¡

¤Ë¤è¤Ã¤Æ¡¢Lua¸À¸ì¤Î´Ø¿ôÄêµÁ¤Ï´Ø¿ô¤Î̾Á° (%a+)¤È¡¢¤½¤Î¥Ñ¥é¥á¡¼¥¿¥ê¥¹¥È(%b()¤ò¥­¥ã¥×¥Á¥ã¤È¤·¤ÆÆÀ¤Æ¤¤¤Þ¤¹¡£

strlen( str )

ʸ»úÎóstr¤ÎŤµ¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£

¡ÊÎã¡Ë

     print(strlen("Linguagem Lua"))

¡Ê·ë²Ì¡Ë

     13.
strsub( str, I [, j ] )

ʸ»úÎóstr¤Î£ìÈÖÌܤ«¤é£êÈÖÌܤޤǤÎʸ»ú¤Ç¿·¤¿¤Ëʸ»úÎó¥Ç¡¼¥¿¤òºî¤Ã¤ÆÊÖ¤·¤Þ¤¹¡£j ¤¬¤Ê¤¤¾ì¹ç¤ÏºÇ¸å¤Îʸ»ú¤Þ¤Ç¤È¤Ê¤ê¤Þ¤¹¡£Ê¸»úÎó¤ÎºÇ¸å¤ò ¡Ý£±¤È¤·¤Æ¿ô¤¨¤Æ¡¢£ê¤ËÉé¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£Î㤨¤Ð¡¢strsub(str, 1, j) ¤Î¾ì¹ç¤Ï£êÈÖÌܤÎʸ»ú¤Þ¤Ç¤òÊÖ¤·¡¢strsub(str, i) ¤Ï£éÈÖÌܤ«¤é¸å¤Îʸ»ú¤òÊÖ¤·¤Þ¤¹¡£

¡ÊÎã¡Ë

     a = "Linguagem Lua"
     print(strsub(a, 11))

¡Ê·ë²Ì¡Ë

     Lua.
strlower( str )

ʸ»úÎóstr¤ò¾®Ê¸»ú¤Ë¤·¤Þ¤¹¡£

¡ÊÎã¡Ë

     print(strlower("Language Lua"))

¡Ê·ë²Ì¡Ë

     language lua
strupper( str )

ʸ»úÎóstr¤òÂçʸ»ú¤Ë¤·¤Þ¤¹¡£

¡ÊÎã¡Ë

     print(strupper("Linguagem Lua"))

¡Ê·ë²Ì¡Ë

     LANGUAGE LUA.
strrep( str, n )

ʸ»úÎóstr¤òn²ó·«¤êÊÖ¤·¤¿Ê¸»úÎó¤òºî¤ê¤Þ¤¹¡£

¡ÊÎã¡Ë

     print(strrep( "0123456789", 2 ))

¡Ê·ë²Ì¡Ë

     01234567890123456789
ascii( str [, I] )

ʸ»úÎóstr¤ÎlÈÖÌܤÎʸ»ú¤ÎASCII¥³¡¼¥É¤òÊÖ¤·¤Þ¤¹¡£

¡ÊÎã¡Ë

     print(ascii("abc",2))

¡Ê·ë²Ì¡Ë

     42.
format( formatstring, exp1, exp2, ... )

ʸ»úÎóformatstring¤Ë½¾¤Ã¤Æ¤½¤ì°Ê¹ß¤Îexp1,exp2,¤ÎÃͤò»ØÄꤷ¤¿½ñ¼°¤Çʸ»úÎó¤ËÊÑ´¹¤·¤Þ¤¹¡£½ñ¼°¤Ï%¤Ë³¤±¤ÆÉ½¼¨¤Î·¿¤ò¼¨¤¹¥¢¥ë¥Õ¥¡¥Ù¥Ã¥Èʸ»ú¤ò¤Ä¤±¤¿·Á¼°¤ÇC¸À¸ì¤Ë¤ª¤±¤ëprintf¤È¤Û¤ÜƱ¤¸¤Ç¤¹¡£ÊÑ´¹¤·¤¿Ê¸»úÎó¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£

¡ÊÎã¡Ë

     name = "Car"
     id = 123
     cmd = format( "insert into table (name, id)
                    values (%s , %d)" , name, id )

SQL¤ÎÁÞÆþ¥³¥Þ¥ó¥É(insert)¤È¤Ê¤ëʸ»úÎó¤ò¡¢¥Æ¡¼¥Ö¥ë¤Îid¤È̾Á°¤ò»È¤Ã¤Æºî¤Ã¤Æ¤¤¤ëÎã¤Ç¤¹¡£

     print( format( "%c", 65 ) )

¤³¤Î¤è¤¦¤Ë¤·¤Æ¡¢¥Ç¡¼¥¿¤Îʸ»ú¤òɽ¤¹ANSI(American NationalStandard Code for Information Interchange) ¤Î¥³¡¼¥ÉÊÑ´¹¤¬²Äǽ¤Ç¤¹¡£

¡ÊÎã¡Ë

     a = 123.456
     print ( format( "%+010.2f", a ) )

¡Ê·ë²Ì¡Ë

     +000123.46.
¡¡
     %s
     %q      ¤Ç¤Ï
     %s      ʸ»úÎó
     %q      ʸ»úÎó¤ò°úÍÑÉä¤Ç¤«¤³¤à
     %c      ʸ»ú
     %d      £±£°¿ÊÀ°¿ô
     %i      %d¤ÈƱ¤¸
     %u      inteiro sem sinal
     %o      £¸¿ÊÀ°¿ô
     %x      £±£¶¿ÊÀ°¿ô(abcdef)
     %X      £±£¶¿ÊÀ°¿ô(ABCDEF)
     %f      ¼Â¿ô [-]ddd.ddd
     %e      ¼Â¿ô [-]d.ddd e[+/-]ddd
     %g      ¼Â¿ô %f¤Þ¤¿¤Ï %e
     %E      ¼Â¿ô %e¤ÈƱ¤¸¤À¤¬Âçʸ»ú¤ÎE¤ò»È¤¦
     %%      %ʸ»ú¤½¤Î¤â¤Î

½ñ¼°À©¸æ¤Î¤¿¤á¤Ë¡¢Àê¤á¤ëʸ»úÎó¤ÎºÇ¾®¥µ¥¤¥º¤ò½¤¾þ»Ò¤È¤·¤Æ%¤Î¤¢¤È¤Ë»ØÄꤷ¤Þ¤¹¡£(former: %10d)Éé¤ÎÃͤϡ¢º¸¤Å¤á¤ò»ØÄꤷ¤Þ¤¹¡£¡Ü¤òÉÕ¤±¤ë¤È¿ôÃͤÎÁ°¤Ë¡Ü¤«¡Ý¤òÉÕ¤±¤Þ¤¹¡£¤µ¤é¤Ë¥Ô¥ê¥ª¥É¤Ë³¤±¤Æ¡¢¾®¿ôÅÀ°Ê²¼¤Î·å¿ô¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£(former: %.2f). 0¤ò»ØÄꤹ¤ë¤È¿ôÃͤκ¸¤Ë£°¤òÄɲä·¤Þ¤¹¡£

gsub( str, pattern, repl [, n ] )

ʸ»úÎóstr¤«¤é¥Ñ¥¿¡¼¥óʸ»úÎópattern¤òõ¤·¡¢Ê¸»úÎórepl¤ÇÃÖ´¹¤·¤Þ¤¹¡£repl¤Ë´Ø¿ô¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¡¢´Ø¿ô¤ò¼Â¹Ô¤·¤¿·ë²Ì¤ÇÃÖ´¹¤·¤Þ¤¹¡£¥Ñ¥¿¡¼¥ó¤Ïstrfind¤Î»þ¤ÈƱ¤¸¤Ç¡¢¥Ñ¥¿¡¼¥ó¤¬¸«¤Ä¤«¤ë¤´¤È¤ËÃÖ´¹¤¬¹Ô¤ï¤ì¤Þ¤¹¤¬¡¢£´ÈÖÌܤ˻ØÄꤷ¤¿£î¤ÇÃÖ´¹²ó¿ô¤ÎºÇÂç¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£¥Ñ¥¿¡¼¥ó¤¬¥­¥ã¥×¥Á¥ã¤ò´Þ¤ó¤Ç¤¤¤ë¤È¡¢¤½¤ì¤é¤Ïreplʸ»úÎóÃæ¤Ë¤¢¤ë%1,%2¤ËŸ³«¤µ¤ì¤Þ¤¹¡£repl¤¬´Ø¿ô¤Î»þ¤Ï¡¢¥­¥ã¥×¥Á¥ã¤µ¤ì¤¿Ê¸»úÎ󤬴ؿô¤Î¥Ñ¥é¥á¡¼¥¿¤È¤·¤ÆÅϤµ¤ì¤Þ¤¹¡£Ìá¤êÃͤϡ¢ÃÖ´¹¤·¤¿Ê¸»úÎó¤È¡¢ÃÖ´¹¤·¤¿²ó¿ô¤Ç¤¹¡£

¡ÊÎã¡Ë

     print( gsub( "Linguagem Lua 3.0", " ", "+" ) )

¡Ê·ë²Ì¡Ë

     Linguagem+Lua+3.0.

¡ÊÎ㣲¡Ë

     texto = "    Linguagem       Lua       3.0 "
     print(  gsub( texto,  "  *",  "  " ) )

¡Ê·ë²Ì£²¡Ë ÃÖ´¹¤Ï¹Ô¤ï¤ì¤Ê¤¤¤Î¤Ç¡¢

     "Linguagem Lua 3.0 ".

¡ÊÎ㣳¡Ë¥­¥ã¥×¥Á¥ãµ¡Ç½

     lista  = [[
     arq.txt
     texto.txt
     r.txt
     ]]
     print( gsub( lista, "(.*)%.txt\n",  "move %1.txt %1.bak\n"  ))

¡Ê·ë²Ì¡Ë

     move arq.txt arq.bak
     move texto.txt texto.bak
     move r.txt r.bak
¿ô³Ø¥é¥¤¥Ö¥é¥ê

¿ôÃͥǡ¼¥¿¤ÎºÇÂçÃÍ¡¢ºÇ¾®ÃͤòÆÀ¤ë´Ø¿ô¤Ç¤Ï¡¢²ÄÊѸĿô¤Î°ú¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

     min( expr1, expr2, ..., exprN)
     max( expr1, expr2, ..., exprN)

¡ÊÎã¡Ë

     print(min(23, 5, 123, 3))
     print(max(23, 5, 123, 3))

¡Ê·ë²Ì¡Ë

     3 123.

C ¸À¸ì¤ÇÍøÍѤµ¤ì¤Æ¤¤¤ë¿ô³Ø´Ø¿ô¥é¥¤¥Ö¥é¥ê¤âÍøÍѤǤ­¤Þ¤¹¡£³ÑÅÙ¤Îñ°Ì¤Ï¥é¥¸¥¢¥ó¤Ç¤Ï¤Ê¤¯Å٤Ǥ¹¡£

     log(value)         logaritmo de value na base e
     log10(value)       logaritmo de value da base 10
     cos(angle)         cosseno de angle (especificado em graus)
     sin(angle)         seno de angle (especificado em graus)
     tan (angle)        tangente de angle (especificado em graus)
     acos(value)        arco cosseno, em graus, de value
     asin(value)        arco seno, em graus, de value
     atan(value)        arco tangente, em graus, de valuea
     tan2(y,x)          arco tangente, em graus, de y/x
     deg(angle)         converte angle (especificado em radianos) para graus
     rad(angle)         converte angle (especificado em graus) para radianos
     abs(value)         valor absoluto de value
     sqrt(value)        raiz quadrada de value
     ceil(value)        inteiro imediatamente inferior a value
     floor(value)       inteiro imediatamente superior a value
     mod(value,div)     resto da divisµÐ inteira de value por div
Æþ½ÐÎÏ´Ø¿ô

¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢¥Õ¥¡¥¤¥ë¤¢¤ë¤¤¤ÏÁõÃÖ¤«¤é¤Î¥Ç¡¼¥¿¤ÎÆþ½ÐÎϤò¹Ô¤¦¥é¥¤¥Ö¥é¥ê¤Ç¤¹¡£lua¸À¸ì¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤È¸Æ¤Ð¤ì¤ëÊÑ¿ô¤Ç¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÆþÎϤȽÐÎϤΣ²¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ï¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò¾Êά¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Î¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤È¤·¤Æ (_ INPUT)¤È(_ OUTPUT)¤ÎÂç°èÊÑ¿ô¤¬»È¤ï¤ì¤Þ¤¹¡£C ¸À¸ì¤Ç¤Îɸ½àÆþ½ÐÎϤǤ¢¤ë stdin¡¢stdout¡¢stderr ¤â¡¢Âç°èÊÑ¿ô _ STDIN¡¢_STDOUT ¡¢_ STDERR¡¡¤Ç»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£½é´ü¾õÂ֤ǤÏ_ INPUT ¤Ï_STDIN ¤Ë¡¢ _ OUTPUT ¤Ï_ STDOUT¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£

readfrom( filename )

»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ò¥Ç¥Õ¥©¥ë¥È¤ÎÆÉ¤ß¼è¤êÍѤ˥ª¡¼¥×¥ó¤·¡¢¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò_INPUT¤ËÀßÄꤷ¤Þ¤¹¡£filename¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿»þ¤Ï¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë¤¬¥¯¥í¡¼¥º¤µ¤ì¤Æ¥Ç¥Õ¥©¥ë¥È¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤ò_STDIN¤ËÌᤷ¤Þ¤¹¡£Ìá¤êÃͤȤ·¤Æ¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤¬ÆÀ¤é¤ì¤Þ¤¹¡£¼ºÇÔ¤·¤¿¤È¤­¤Ïnil¤È¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î£²¤Ä¤¬ÆÀ¤é¤ì¤Þ¤¹¡£

¡ÊÎã¡Ë

     readfrom( "c:\\txt\\b.txt" )
writeto( [filename ])

»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤·¡¢¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò_OUTPUT¤ËÀßÄꤷ¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¤½¤ÎÆâÍÆ¤Ï¾Ãµî¤µ¤ì¤Æ¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Ë¤Ê¤ê¤Þ¤¹¡£À®¸ù¤¹¤ë¤È¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£¼ºÇÔ¤·¤¿¤È¤­¤Ïnil¤È¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î£²¤Ä¤¬ÆÀ¤é¤ì¤Þ¤¹¡£filename¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿»þ¤Ï¡¢¸½ºß¤Î¥Õ¥¡¥¤¥ë¤Ï¥¯¥í¡¼¥º¤µ¤ì¤Æ¥Ç¥Õ¥©¥ë¥È¤Î½ÐÎϤò_STDIN¤ËÌᤷ¤Þ¤¹

¡ÊÎã¡Ëa.txt ¥Õ¥¡¥¤¥ë¤ò¿·µ¬ºîÀ®¤·¤ÆÊ¸»ú¤ò½ñ¤¯¡£¤¹¤Ç¤Ë¸ºß¤¹¤ë¤È¡¢²¿¤â¤·¤Ê¤¤¡£

     if writeto( "a.txt" ) then
       write( "result is 123" )
       writeto( )
     end
appendto( [filename] )

»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤òÄɲýñ¤­¹þ¤ß¤Ç¥ª¡¼¥×¥ó¤·¡¢writeto()¤ÈƱÍͤˤ·¤Þ¤¹¡£´û¸¤Î¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ¤Ï¾Ãµî¤µ¤ì¤Þ¤»¤ó¡£

¡ÊÎã¡Ëa.txt¤È¤¤¤¦¥Õ¥£¥¢¥ë¤Ëʸ»ú¤òÄɵ­¤¹¤ë¡£¥Õ¥¡¥¤¥ë¤¬¤Ê¤±¤ì¤Ð²¿¤â¤·¤Ê¤¤¡£

     if appendto( "a.txt") then
       write( "result is 123" )
       appendto ()
     end
read( [format] )

¸½ºß¤ÎÆþÎÏÁõÃÖ_ INPUT¤«¤é¥Ç¡¼¥¿¤òÆÉ¤ß¹þ¤ß¤Þ¤¹¡£ÆÉ¤ß¹þ¤ó¤À¥Ç¡¼¥¿¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç¤Ï¡¢ nil¤Ë¤Ê¤ê¤Þ¤¹¡£format¤Ï¡¢¼¡¤Î¤¤¤º¤ì¤«¤Îʸ»úÎó¤Ç¤¹¡£

     "*l",     £±¹Ôñ°Ì
     "*n",     ñ¸ìñ°Ì
     "*w",     ¥Õ¥¡¥¤¥ë¤¹¤Ù¤Æ
     "*n"      ¿ôÃͥǡ¼¥¿

»ØÄê¤Î¤Ê¤¤¤È¤­¤Ï¹Ôñ°Ì¤Ë¤Ê¤ê¤Þ¤¹¡£¤Þ¤¿¡¢¿ôÃͤò»ØÄꤹ¤ë¤È¡¢»ØÄꤷ¤¿¥Ð¥¤¥È¿ô¤ÎÆÉ¤ß¹þ¤ß¤ò¤·¤Þ¤¹¡£¡ÊÌõ¼ÔÃí¡§¥Ð¡¼¥¸¥ç¥ó3.2¤Þ¤ÇÍøÍѤµ¤ì¤Æ¤¤¤¿¥Ñ¥¿¡¼¥ó¤Ç¤ÎÆÉ¤ß¹þ¤ß¤ÏÇѻߤµ¤ì¤Þ¤·¤¿¡Ë

¡ÊÎã¡Ë¥Õ¥¡¥¤¥ë¤Î¿ôÃͤò¤¹¤Ù¤ÆÆÉ¤ó¤Ç¥Æ¡¼¥Ö¥ë¤ËÆþ¤ì¤Þ¤¹¡£

     data = { }
     i = 1readfrom( "datas.txt" )
     repeat
        data[i] = read( "*n" )
        i = i + 1
     until data == nil
     readfrom()
write( value1, value2, ...)

¸½ºß¤Î½ÐÎÏÁõÃÖ (_OUTPUT).¤ËÍ¿¤¨¤é¤ì¤¿¥Ç¡¼¥¿value1, value2, ... ¤ò½ÐÎϤ·¤Þ¤¹¡£¼ºÇÔ¤·¤¿¤È¤­¤ËÌá¤êÃͤÏnil¤È¤Ê¤ê¡¢À®¸ù¤¹¤ë¤È¤½¤ì°Ê³°¤ÎÃͤȤʤê¤Þ¤¹¡£print()¤È°ã¤Ã¤Æ¡¢¥Ç¡¼¥¿¤Ï¿ôÃͤ¢¤ë¤¤¤Ïʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£

¡ÊÎã¡Ë

     write(  "a = ", a  )
remove( filename )

filename¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£¼ºÇÔ¤·¤¿¤È¤­¤ÏÌá¤êÃͤ¬nil¤Ë¤Ê¤ê¤Þ¤¹¡£

¡ÊÎã¡Ë

     a, error = remove( "c:\doc\arq.txt" )
     if not a then
       print( error )
     end
rename( name1, name2 )

name1¤Î¥Õ¥¡¥¤¥ë̾¤òname2¤ËÊѹ¹¤·¤Þ¤¹¡£¼ºÇÔ¤·¤¿»þ¤ÎÊÖ¤êÃͤÏnil¤Ë¤Ê¤ê¤Þ¤¹¡£

¡ÊÎã¡Ë

     a, error = rename( "arq.txt", "arquivo.txt" )
     if not a then
       print( error )
     end

arq.txt ¤ò arquivo.txt ¤ËÊѹ¹¤·¤Þ¤¹¡£Êѹ¹¤Ç¤­¤Ê¤±¤ì¤Ð¥á¥Ã¥»¡¼¥¸¤ò½ÐÎϤ·¤Þ¤¹¡£

tmpname( )

°ì»þ¥Õ¥¡¥¤¥ë¤È¤·¤Æ°ÂÁ´¤Ë»È¤¨¤ë¥Õ¥¡¥¤¥ë̾¤òÊÖ¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£

¡ÊÎã¡Ëºî¶È¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß½àÈ÷¤¹¤ë

     filename = tmpname( )
     writeto( filename )
date( [format] )

¸½ºß¤ÎÆüÉդȻþ¹ï¤ò¼èÆÀ¤·¤ÆÊ¸»úÎó¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£½ñ¼°¤Ï¡¢unix¤Îstrftime()´Ø¿ô¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¡¢¾Êά¤¹¤ë¤È¤½¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç°ìÈÌŪ¤Ê·Á¼°¤Ç½ÐÎϤ·¤Þ¤¹¡£

     %a        ¾Êά·Á¤ÎÍËÆü
     %A        ´°Á´¤ÊÍËÆü
     %b        ¾Êά·Á¤Î·î
     %B        ·î
     %c        °ìÈÌŪ¤ÊÆüÉդȻþ¹ï
     %d        ÆüÉÕ 01 ¡Á 31
     %H        »þ 00 ¡Á 23
     %I        »þ´Ö 01 ¡Á 12
     %j        º£Ç¯¤ÎÄÌ»»Æü¿ô 001 ¡Á 366
     %m        ·î¡¡01 ¡Á12
     %M        ʬ 00 ¡Á 59
     %P        ¸áÁ°¸á¸å¡¡am/pm
     %S        ÉÃ 00 ¡Á 60
     %U        º£Ç¯¤ÎÄÌ»»½µ¿ô¡¡ÆüÍˤ«¤é 00 ¡Á 53
     %w        º£½µ¤ÎÆüÍˤ«¤é¤ÎÆü¿ô¡¡ 0 ¡Á 6
     %W        º£Ç¯¤ÎÄÌ»»½µ¿ô·îÍˤ«¤é 00 ¡Á 53
     %x        °ìÈÌŪ¤ÊÆüÉÕɽµ­
     %X        °ìÈÌŪ¤Ê»þ´Öɽµ­
     %y        ǯ¤Î²¼£²·å
     %Y        £´·å¤Îǯ
     %z        ¥¿¥¤¥à¥¾¡¼¥ó
     %%        %¼«ÂΤòɽ¤¹

¡ÊÎã¡Ë

     print( date( "day %d month %B" ) )

¡Ê·ë²Ì¡Ë

     day 14 month August
exit( [code] )

¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò½ªÎ»¤·¤Æ¿ôÃÍcode¤ò¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ë¥×¥í¥°¥é¥à¤Î½ªÎ»ÃͤȤ·¤Þ¤¹¡£code¤ò»ØÄꤷ¤Ê¤¤¤È¤­¤Ï£±¤Ç¤¹¡£¤³¤Î´Ø¿ô¤ÏÌá¤êÃͤϤ¢¤ê¤Þ¤»¤ó¡£

¡ÊÎã¡ËÂç°èÊÑ¿ôtermina=programa¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤Þ¤¹¡£

     if termina_programa then
       exit( )
     end
getenv( varname )

¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤«¤éÍ¿¤¨¤é¤ì¤ë´Ä¶­ÊÑ¿ô¤«¤é¡¢Ê¸»úÎóvarname¤Ç¼¨¤µ¤ì¤ë¥Ç¡¼¥¿¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£´Ä¶­ÊÑ¿ô¤¬Â¸ºß¤·¤Ê¤¤¤È¤­¤Ïnil¤Ë¤Ê¤ê¤Þ¤¹¡£

¡ÊÎã¡Ë

     print( getenv( "REMOTE_HOST" ) )

´Ä¶­ÊÑ¿ô REMOTE_HOST¤ò¥×¥ê¥ó¥È¤·¤Þ¤¹¡£

execute( command )

¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢Ê¸»úÎó command ¤ò¼Â¹Ô¥³¥Þ¥ó¥É¤È¤·¤Æ¼Â¹Ô¤·¤Þ¤¹¡£Ìá¤êÃͤϥ³¥Þ¥ó¥É¤Î½ªÎ»¥³¡¼¥É¤Ç¡¢¥·¥¹¥Æ¥à¤Ë°Í¸¤·¤Þ¤¹¡£

¡ÊÎã¡Ë

     execute( "mkdir c:\data" )

ºÇ¸å¤Ë

Lua¤ÎÆÃħ¤Î°ì¤Ä¤Ë¡¢»º¶È³¦¤ÈÂç³Ø¤ÎξÌ̤ÇÍøÍѤµ¤ì¤Æ¤¤¤ë¤³¤È¤¬¤¢¤²¤é¤ì¤Þ¤¹¡£PUC-Rio¤Ç³«È¯¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Ï»º¶È³¦¤Ç¤Ï¿ô½½¤Î¥×¥í¥¸¥§¥¯¥È¤ËÍøÍѤµ¤ì¡¢³Ø½ÑŪ¤Ë¤â¿¤¯¤ÎÈ¿¶Á¤ò¸Æ¤Ó¡¢Â¿¿ô¤Î³Ø°ÌÏÀʸ¤ä³Ø½ÑÏÀʸ¤Ë·ÇºÜ¤µ¤ì¤Þ¤·¤¿¡£

Ãøºî¸¢É½¼¨

Copyright (c) 1994-1998 TeCGraf, PUC-Rio. Written by Waldemar Celes Filho, Roberto Ierusalimschy, Luiz Henrique de Figueiredo. All rights reserved.

Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, subject to the following conditions:

* The above copyright notice and this permission notice shall appear in all copies or substantial portions of this software.

* The name "Lua" cannot be used for any modified form of this software that does not originate from the authors. Nevertheless, the name "Lua" may and should be used to designate the language implemented and described in this package, even if embedded in any other system, as long as its syntax and semantics remain unchanged.

The authors specifically disclaim any warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The software provided hereunder is on an "as is" basis, and the authors have no obligation to provide maintenance, support, updates, enhancements, or modifications. In no event shall TeCGraf, PUC-Rio, or the authors be liable to any party for direct, indirect, special, incidental, or consequential damages arising out of the use of this software and its authors be liable to any party for direct, indirect, special, incidental, or consequential damages arising out of the use of this software and its documentation.

[EOF]