Модуль:Calculator: различия между версиями

Материал из Вики-Вятки
Перейти к навигации Перейти к поиску
(Новая страница: «-- Calculator - Easily add arithmetic operations to wiki pages -- Written by Shining-Armor -- Version 0.1 local p = {} local userError = require('Dev:User error...»)
 
Строка 1: Строка 1:
 +
-- https://dev.fandom.com/wiki/Module:Calculator
 
-- Calculator - Easily add arithmetic operations to wiki pages
 
-- Calculator - Easily add arithmetic operations to wiki pages
 
-- Written by Shining-Armor
 
-- Written by Shining-Armor

Версия 17:54, 25 августа 2020

Использование

Модуль калькулятора предоставляет несколько функций, которые можно вызывать с помощью {{#invoke}}:

Сложение
Складывает два предоставленных числа
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Вычитание
Вычитает два предоставленных числа
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Умножение
Выполняет умножение указанных чисел
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Деление
Делит два предоставленных числа
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Остаток
Находит остаток от деления двух указанных чисел.
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.
Возведение в степень
Возводит число в указанную степень
Input: {{Calculator}}
Output: Ошибка Lua в package.lua на строке 80: module 'Dev:User error' not found.

-- https://dev.fandom.com/wiki/Module:Calculator
-- Calculator - Easily add arithmetic operations to wiki pages
-- Written by Shining-Armor
-- Version 0.1
 
local p = {}
local userError = require('Dev:User error')
local entrypoint = require('Dev:Entrypoint')
 
local function empty( s )
    if s == nil or s == '' then 
        return true
    else
        return false
    end
end
 
function p.addition( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for addition')
    else
        return tonumber( frame.args[1] ) + tonumber( frame.args[2] )
    end
end
 
function p.division( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for division')
    else 
        return tonumber( frame.args[1] ) / tonumber( frame.args[2] )
    end
end
 
function p.modulo( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for modulo')
    else
        return tonumber( frame.args[1] ) % tonumber( frame.args[2] )
    end
end
 
function p.multiplication( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for multiplication')
    else
        return tonumber( frame.args[1] ) * tonumber( frame.args[2] )
    end
end
 
function p.subtraction( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for subtraction')
    else
        return tonumber( frame.args[1] ) - tonumber( frame.args[2] )
    end
end
 
function p.exponentation( frame )
    if empty( frame.args[1] ) or empty( frame.args[2] ) then
        return userError('must provide 2 operands for exponentation')
    else
        return tonumber( frame.args[1] ) ^ tonumber( frame.args[2] )
    end
end
 
p.main = entrypoint(p)
 
return p