Top 1K Features Creators Events Podcasts Books 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 · Add · About · Search · Keywords · Livestreams · Labs · Resources · Acknowledgements · Part of the World Wide Scroll