Open main menu
Posts
Gists
Guilds
Users
Decipher
Docs
Open user menu
Log in
Sign up
Create a new gist
Posts
Gists
Guilds
Users
Decipher
Docs
Files
withlog.src
nolog.src
withlog.src
//Error Printing Functions
error = function(error, message)
exit("<color=red>Runtime Error: " + error + " Error: " + message)
end function
hasItem = function(Values, item)
if Values.indexOf(item) == null then return false
return true
end function
isValidType = function(func, item, variableName, valids)
if not typeof(valids) == "list" then valids = [valids]
if not hasItem(valids, typeof(item)) then error("Type", "the " + func + "() function only accepts type(s) of '" + valids.join("', '") + "' for " + variableName + " (" + typeof(item) + ")")
end function
//List | Map
max = function(Values)
isValidType("max", Values, "Values", ["list","map"])
if typeof(Values) == "list" then return Values[0:].sort[-1]
Items = Values.values
return Values.indexes[Items.indexOf(max(Items))]
end function
maximum=@max
//List | Map
min = function(Values)
isValidType("min", Values, "Values", ["list","map"])
if typeof(Values) == "list" then return Values[0:].sort[0]
Items = Values.values
return Values.indexes[Items.indexOf(min(Items))]
end function
minimum=@min
//List + any
removeItem = function(Values, item)
isValidType("removeItem", Values, "Values", "list")
if Values.indexOf(item) == null then return Values
if Values.indexOf(item) == null
return Values
if Values.indexOf(item) == 0
then return Values
[1:]
return Values[:Values.indexOf(item) - 1] + Values[Values.indexOf(item):]
end function
remi = @removeItem
remItem = @removeItem
//List + any
removeAllItem = function(Values, item)
isValidType("removeAllItem", Values, "Values", "list")
if Values.indexOf(item) == null then return Values
NValues = Values[0:]
while NValues.indexOf(item) != null
NValues.remove(NValues.indexOf(item))
end while
return NValues
end function
remItems = @removeAllItem
remAllItem = @removeAllItem
//List | Map
count = function(Values, item)
isValidType("count", Values, "Values", ["list","map"])
if typeof(Values) == "map" then return str(Values[item]).len
return Values.len - removeAllItem(Values, item).len
end function
//List
removeDuplicates = function(Values)
isValidType("removeDuplicates", Values, "Values", "list")
Items = []
for item in Values
if Items.indexOf(item) == null then Items.push(item)
end for
return Items
end function
remDups = @removeDuplicates
remDuplicates = @removeDuplicates
//List
mean = function(Values)
isValidType("average", Values, "Values", "list")
return sum(Values) / Values.len
end function
average=@mean
//List
median = function(Values)
isValidType("median", Values, "Values", "list")
if Values.len % 2 == 0 then
x = Values.len / 2
return sum(Values[0:].sort[x:x+1]) / 2
end if
return Values[0:].sort[floor(round(Values.len / 2))]
end function
middle=@median
//List
mode = function(Values)
isValidType("mode", Values, "Values", "list")
Items = Values[0:]
remDups(Items)
Counts = []
for item in Items
Counts.push(count(Items, item))
end for
return Items[Counts.indexOf(max(Counts))]
end function
most=@m
ean
most=@m
ode
//Number | String(number)
factors = function(number)
isValidType("factors", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
Temp = []
for i in range(1, floor(sqrt(number)) + 1)
if number % i == 0 then Temp.push([i, floor(number / i)])
end for
Factors = []
for pair in Temp
for item in pair
Factors.push(item)
end for
end for
return remDups(Factors).sort
end function
//List
greatestCommonFactor = function(Values)
isValidType("greatestCommonFactor", Values, "Values", "list")
Items = Values[0:]
for i in range(Items.len - 1)
Items[i] = factors(Items[i])
end for
FactorAmounts = []
for item in Items
FactorAmounts.push(item.len)
end for
smallest = Items[FactorAmounts.indexOf(min(FactorAmounts))]
Items.remove(Items.indexOf(smallest))
Data = []
for small in smallest
Temp = []
for item in Items
if not item.indexOf(small) == null then Temp.push(true)
end for
if count(Temp, true) == Items.len then Data.push(small)
end for
return max(Data)
end function
GCF = @greatestCommonFactor
//Number | String(number)
decimalToPercent = function(number)
isValidType("decimalToPercent", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
return number * 100
end function
DTP = @decimalToPercent
//Number | String(number)
percentToDecimal = function(number)
isValidType("percentToDecimal", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
return number / 100
end function
PTD = @percentToDecimal
//Number | String(number)
percentToMultiplier = function(number)
isValidType("topercentToMultiplierPercent", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
return
toDecimal
(number) + 1
return
PTD
(number) + 1
end function
PTM = @percentToMultiplier
//Number | String(number)
multiplierToPercent = function(number)
isValidType("multiplierToPercent", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
return
toPercent
(number - 1)
return
DTP
(number - 1)
end function
MTP = @multiplierToPercent
//Number | String(number)
decimalToFraction = function(number)
isValidType("decimalToFraction", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
number = str(number).split("\.")
if number.len == 0 then return number[0]
denominator = 10 ^ number[1].len
numerator = number[1].to_int + (number[0].to_int * denominator)
factor = GCF([numerator, denominator])
numerator = floor(numerator / factor)
denominator = floor(denominator / factor)
return numerator + "/" + denominator
end function
DTF = @decimalToFraction
//Number | String(number) + Number | String(number)
baseConvert = function(number, base)
isValidType("baseConvert", number, "number", ["number","string"])
isValidType("baseConvert", base, "base", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
if typeof(base) == "string" then base = base.to_int
if typeof(base) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + base + ")")
digits = []
while number > 0
digits.push(floor(number % base))
number = floor(number / base)
end while
digits.reverse
return digits
end function
//Number | String(number)
hex = function(number)
isValidType("hex", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
dectohex = function(decimal)
if decimal < 10 then return decimal else return {10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"}[decimal]
end function
hexnumber = baseConvert(number, 16)
for i in range(hexnumber.len - 1)
hexnumber[i] = dectohex(hexnumber[i])
end for
return hexnumber.join("")
end function
//Number | String(number)
bin = function(number)
isValidType("bin", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
binnumber = baseConvert(number, 2)
return binnumber.join("")
end function
//Number | String(number)
oct = function(number)
isValidType("oct", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
octnumber = baseConvert(number, 8)
return octnumber.join("")
end function
//String
capitalize = function(string)
isValidType("capitalize", string, "string", "string")
return string[0].upper + string[1:]
end function
cap = @capitalize
//Function + List
//This function will take a function as the first parameter and then apply that function to all items in the list.
//Note that to pass a function, you put @ before it... so applyFunction(@sqrt, list).
applyFunction = function(func, Values)
isValidType("applyFunction", Values, "Values", "list")
for i in range(Values.len - 1)
Values[i] = func(Values[i])
end for
end function
//String + Number | String(number) + String
rfill = function(string, amount, filler)
rfill = function(string, amount, filler
= "0"
)
isValidType("rfill", string, "string", "string")
isValidType("rfill", amount, "amount", ["number","string"])
isValidType("rfill", filler, "filler", "string")
if typeof(amount) == "string" then amount = amount.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
amount
= max([0, amount - string.len])
if amount > 0 then string =
string + filler * amount
return
string
return
string + filler *
max([0,
amount
-
string
.len])
end function
//String + Number | String(number) + String
lfill = function(string, amount, filler = "0")
isValidType("lfill", string, "string", "string")
isValidType("lfill", amount, "amount", ["number","string"])
isValidType("lfill", filler, "filler", "string")
if typeof(amount) == "string" then amount = amount.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
amount =
max([0, amount - string.len])
if amount > 0 then string = filler * amount
+ string
return string
return filler *
max([0, amount - string.len]) + string
end function
//Number
| String(number)
//Number
isPrime = function(number)
isValidType("isPrime", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
if number == 1 then return false
return factors(number).len == 2
end function
//Number
| String(number)
//Number
factorsPrime = function(number)
isValidType("factorsPrime", number, "number", ["number",
"string"])
isValidType("factorsPrime", number, "number", ["number","string"])
if typeof(number) == "string" then number = number.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
Factors = [1]
while not isPrime(number)
number = floor(number / Factors[-1])
for i in factors(number)
if isPrime(i) then
Factors.push(i)
break
end if
end for
end while
return Factors[1:]
end function
factorsp = @factorsPrime
//String + List
format = function(string, Values)
isValidType("format", string, "string", "string")
isValidType("format", Variables, "Variables", "list")
x = 0
while not string.indexOf("{}") == null
i = string.indexOf("{}")
string = string[0:i] + Variables[x] + string[i + 2:]
x = x + 1
end while
return string
end function
f = @format
//String + Number | String(number)
stringGroup = function(string, groupsize)
isValidType("stringGroup", string, "string", "string")
isValidType("stringGroup", groupsize, "groupsize", ["number","string"])
if typeof(groupsize) == "string" then groupsize = groupsize.to_int
if typeof(number) == "string" then error("Conversion", "Could not convert 'string' to 'number' (" + number + ")")
strings = []
for i in range(0, string.len, groupsize)
strings.push(string[i : min([i + groupsize, string.len])])
end for
return strings
end function
nolog.src
//List | Map
max = function(Values)
if typeof(Values) == "list" then return Values[0:].sort[-1]
Items = Values.values
return Values.indexes[Items.indexOf(max(Items))]
end function
maximum=@max
//List | Map
min = function(Values)
if typeof(Values) == "list" then return Values
[0:].sort[0]
if typeof(Values) == "list" then return Values
Items = Values.values
return Values.indexes[Items.indexOf(min(Items))]
end function
minimum=@min
//List + any
removeItem = function(Values, item)
if Values.indexOf(item) == null then return Values
if Values.indexOf(item) == 0 then return Values[1:]
return Values[:Values.indexOf(item) - 1] + Values[Values.indexOf(item):]
end function
remi = @removeItem
remItem = @removeItem
//List + any
removeAllItem = function(Values, item)
if Values.indexOf(item) == null then return Values
NValues = Values[0:]
while NValues.indexOf(item) != null
NValues.remove(NValues.indexOf(item))
end while
return NValues
end function
remItems = @removeAllItem
remAllItem = @removeAllItem
//List | Map
count = function(Values, item)
if typeof(Values) == "map" then return str(Values[item]).len
return Values.len - removeAllItem(Values, item).len
end function
//List
removeDuplicates = function(Values)
Items = []
for item in Values
if Items.indexOf(item) == null then Items.push(item)
end for
return Items
end function
remDups = @removeDuplicates
remDuplicates = @removeDuplicates
//List
mean = function(Values)
return sum(Values) / Values.len
end function
average=@mean
//List
median = function(Values)
if Values.len % 2 == 0 then
x = Values.len / 2
return sum(Values[0:].sort[x:x+1]) / 2
end if
return Values[0:].sort[floor(round(Values.len / 2))]
end function
middle=@median
//List
mode = function(Values)
Items = Values[0:]
remDups(Items)
Counts = []
for item in Items
Counts.push(count(Items, item))
end for
return Items[Counts.indexOf(max(Counts))]
end function
most=@m
ean
most=@m
ode
//Number | String(number)
factors = function(number)
if typeof(number) == "string" then number = number.to_int
Temp = []
for i in range(1, floor(sqrt(number)) + 1)
if number % i == 0 then Temp.push([i, floor(number / i)])
end for
Factors = []
for pair in Temp
for item in pair
Factors.push(item)
end for
end for
return remDups(Factors).sort
end function
//List
greatestCommonFactor = function(Values)
Items = Values[0:]
for i in range(Items.len - 1)
Items[i] = factors(Items[i])
end for
FactorAmounts = []
for item in Items
FactorAmounts.push(item.len)
end for
smallest = Items[FactorAmounts.indexOf(min(FactorAmounts))]
Items.remove(Items.indexOf(smallest))
Data = []
for small in smallest
Temp = []
for item in Items
if not item.indexOf(small) == null then Temp.push(true)
end for
if count(Temp, true) == Items.len then Data.push(small)
end for
return max(Data)
end function
GCF = @greatestCommonFactor
//Number | String(number)
decimalToPercent = function(number)
if typeof(number) == "string" then number = number.to_int
return number * 100
end function
DTP = @decimalToPercent
//Number | String(number)
percentToDecimal = function(number)
if typeof(number) == "string" then number = number.to_int
return number / 100
end function
PTD = @percentToDecimal
//Number | String(number)
percentToMultiplier = function(number)
if typeof(number) == "string" then number = number.to_int
return
toDecimal
(number) + 1
return
PTD
(number) + 1
end function
PTM = @percentToMultiplier
//Number | String(number)
multiplierToPercent = function(number)
if typeof(number) == "string" then number = number.to_int
return
toPercent
(number - 1)
return
DTP
(number - 1)
end function
MTP = @multiplierToPercent
//Number | String(number)
decimalToFraction = function(number)
if typeof(number) == "string" then number = number.to_int
number = str(number).split("\.")
if number.len == 0 then return number[0]
denominator = 10 ^ number[1].len
numerator = number[1].to_int + (number[0].to_int * denominator)
factor = GCF([numerator, denominator])
numerator = floor(numerator / factor)
denominator = floor(denominator / factor)
return numerator + "/" + denominator
end function
DTF = @decimalToFraction
//Number | String(number) + Number | String(number)
baseConvert = function(number, base)
if typeof(number) == "string" then number = number.to_int
if typeof(base) == "string" then base = base.to_int
digits = []
while number > 0
digits.push(floor(number % base))
number = floor(number / base)
end while
digits.reverse
return digits
end function
//Number | String(number)
hex = function(number)
if typeof(number) == "string" then number = number.to_int
dectohex = function(decimal)
if decimal < 10 then return decimal else return {10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"}[decimal]
end function
hexnumber = baseConvert(number, 16)
for i in range(hexnumber.len - 1)
hexnumber[i] = dectohex(hexnumber[i])
end for
return hexnumber.join("")
end function
//Number | String(number)
bin = function(number)
if typeof(number) == "string" then number = number.to_int
binnumber = baseConvert(number, 2)
return binnumber.join("")
end function
//Number | String(number)
oct = function(number)
if typeof(number) == "string" then number = number.to_int
octnumber = baseConvert(number, 8)
return octnumber.join("")
end function
//String
capitalize = function(string)
return string[0].upper + string[1:]
end function
cap = @capitalize
//Function + List
//This function will take a function as the first parameter and then apply that function to all items in the list.
//Note that to pass a function, you put @ before it... so applyFunction(@sqrt, list).
applyFunction = function(func, Values)
for i in range(Values.len - 1)
Values[i] = func(Values[i])
end for
end function
//String + Number | String(number) + String
rfill = function(string, amount, filler)
rfill = function(string, amount, filler
= "0"
)
if typeof(amount) == "string" then amount = amount.to_int
amount = max([0, amount - string.len])
if amount > 0 then string =
string + filler * amount
return
string
return
string + filler *
max([0,
amount
-
string
.len])
end function
//String + Number | String(number) + String
lfill = function(string, amount, filler = "0")
if typeof(amount) == "string" then amount = amount.to_int
amount =
max([0, amount - string.len])
if amount > 0 then string = filler * amount
+ string
return string
return filler *
max([0, amount - string.len]) + string
end function
//Number
| String(number)
//Number
isPrime = function(number)
if typeof(number) == "string" then number = number.to_int
if number == 1 then return false
return factors(number).len == 2
end function
//Number
| String(number)
//Number
factorsPrime = function(number)
if typeof(number) == "string" then number = number.to_int
Factors = [1]
while not isPrime(number)
number = floor(number / Factors[-1])
for i in factors(number)
if isPrime(i) then
Factors.push(i)
break
end if
end for
end while
return Factors[1:]
end function
factorsp = @factorsPrime
//String + List
format = function(string, Values)
x = 0
while not string.indexOf("{}") == null
i = string.indexOf("{}")
string = string[0:i] + Variables[x] + string[i + 2:]
x = x + 1
end while
return string
end function
f = @format
//String + Number | String(number)
stringGroup = function(string, groupsize)
if typeof(groupsize) == "string" then groupsize = groupsize.to_int
strings = []
for i in range(0, string.len, groupsize)
strings.push(string[i : min([i + groupsize, string.len])])
end for
return strings
end function