Top 1,000 Features Creators Events Podcasts Extensions Interviews Blog Explorer CSV

Lua

< >

Lua is an open source programming language created in 1993 by Roberto Ierusalimschy.

#23on PLDB 31Years Old 244kRepos
Homepage · REPL · Try It Online · Download · Blog · Wikipedia · Subreddit · FAQ · Release Notes · Docs · Mailing List

Lua ( LOO-ə, from Portuguese: lua [ˈlu.(w)ɐ] meaning moon) is a lightweight, multi-paradigm programming language designed primarily for embedded systems and clients. Lua is cross-platform, since the interpreter is written in ANSI C, and has a relatively simple C API. Lua was originally designed in 1993 as a language for extending software applications to meet the increasing demand for customization at the time. Read more on Wikipedia...


Example from Riju:
print("Hello, world!")
Example from hello-world:
print("Hello World")
# Hello World in Lua print "Hello world"
Example from Linguist:
-- A simple counting object that increments an internal counter whenever it receives a bang at its first inlet, or changes to whatever number it receives at its second inlet. local HelloCounter = pd.Class:new():register("h-counter") function HelloCounter:initialize(sel, atoms) self.inlets = 2 self.outlets = 1 self.num = 0 return true end function HelloCounter:in_1_bang() self:outlet(1, "float", {self.num}) self.num = self.num + 1 end function HelloCounter:in_2_float(f) self.num = f end
Example from Wikipedia:
$ cc -o example example.c -llua $ ./example Result: 8
and break do else elseif end false for function goto if in local nil not or repeat return then true until while

Language features

Feature Supported Example Token
Standard Library
print("Hello, World!")
Constants
pi  = 3.14159
Lists
myList = {1, 2, 3}
Bitwise Operators
& | ~ << >> ~
Hexadecimals
-- 0[xX][0-9a-fA-F]+ (integer)
-- 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+)? (float)
0x5F3759DF
0x0.1D
0xA23p-4
0X1.921FB54442D18P+1
Integers
80766866
Floats
-- [0-9]*\.[0-9]+([eE][+-]?[0-9]+)? -- (decimal float)
-- 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+)? -- (hex float)
Scientific Notation
1E2
.12345E+6
1.e+0
0x15e-2
0x2.p10
0X.8p-0
0x1.Fp+0
0x1fffp-16
0x1p-2
Conditionals
if true then
    print("true")
end
Functions
function myFunction()
    print("hello")
end
While Loops
while true do
    print("hello")
end
Booleans
true
false
true false
Strings
"Hello world"
"
Print() Debugging
print("hello world")
print
Maps
myMap = {
    key = "value",
    [35] = 35,
}
Line Comments
-- A comment
--
Operator Overloading
Assignment
MultiLine Comments
--[[
A comment.
--]]
--[[ --]]
Comments
Case Insensitive Identifiers X
Semantic Indentation X
Octals X

View source

- Build the next great programming language · About · Resources · Acknowledgements · Part of the World Wide Scroll