Module:Sandbox/Safan41 Explained

-- Safan41 Google Code-in, Introduction to Lua in Wikipedia-- Safan41 Google Code-in, Working with moduleslocal p = -- p stands for package

function p.hello(frame) return "Hello, world!"end

p.Hi = function(frame) strName = frame.args.name or "Jimbo" return "Hello from Lua to my friend " .. strName .. ".
"end

function p.temperature(frame)cel = tonumber(frame.args.celsius) or 0fah = cel * 9 / 5 + 32msg = cel .. " degrees Celsius is " .. fah .. " degrees Fahrenheit. "if cel > 9 then msg = msg .. "It is warm." else msg = msg .. "It is cold." endreturn msgend

-- Task 4

p.times = function(frame)

local num = tonumber(frame.args.num) or 2

local out = "Times table
"

for i = 1, 12 do

out = out .. num .. " times " .. i .. " equals " .. i * num .. "
"

end

return num .. " " .. out

end

p.mum = function(frame)

local family =

local msg = "Hello "for x = 1, #family do

msg = msg .. family[x] .. "
"end

return msg

end

-- Task 5

p.sentence = function(frame)

local str = frame.args.words or ""

local out = string.upper(string.sub(str, 1, 2)) .. string.sub(str, 3)

return out

end

p.unpackdate = function(frame)

local dmydate = frame.args.dmydate or ""

local day, month, year = string.match(dmydate, "(%d+) (%w+) (%d+)")

return "Year = " .. year .. "
Day = " .. day .. "
Month = " .. month

end

p.test = function(frame)

local dmydate = frame.args.dmydate or ""

local month, day, year = string.match(dmydate, "(%w+) (%d+), (%d+)")

return "Year = " .. year .. "
Day = " .. day .. "
Month = " .. month

end

p.langnames = function(frame)

local langlist = mw.language.fetchLanguageNames

local langs = ""

local count = 0

for k, v in pairs(langlist) do

langs = langs .. k .. " - " .. v .. "
"

count = count + 1

end

return langs .. "
= " .. count .. " languages"

end

p.fallbacks = function(frame)

local langfallback = mw.language.getFallbacksFor(frame.args.langcode)local string = frame.args.langcode .. " -"for k, fallback in pairs(langfallback) do

string = string .. " " .. fallback

end

return string

end

p.pagename = function(frame)

local ttl = frame.args.title

local ttlobj = mw.title.new(ttl)

local txt = ttlobj.text

return txt

end

function p.pageinfo(frame) local page = mw.title.new(frame.args.title or "") function test if page.exists then exist = "exists" else exist = "does not exist" end if page.isRedirect then redirect = "" else redirect = "not" end end if not pcall(test) then return "" else test end local string = page.text .. string.format(" %s and is %s a redirect", exist, redirect) return stringend

return p