docs(examples): add reusable library modules
This commit is contained in:
1 parent
f72f9d0c29
commit
36229f90ad
2 files changed
+72
No files matched your search
@@ -0,0 +1,40 @@
|
|||||||
|
// Numeric helpers built on the math builtins.
|
||||||
|
|
||||||
|
fn factorial(n) {
|
||||||
|
var product = 1
|
||||||
|
var i = 2
|
||||||
|
while (i <= n) {
|
||||||
|
product = product * i
|
||||||
|
i = i + 1
|
||||||
|
}
|
||||||
|
return product
|
||||||
|
}
|
||||||
|
|
||||||
|
fn gcd(a, b) {
|
||||||
|
var x = abs(a)
|
||||||
|
var y = abs(b)
|
||||||
|
while (y != 0) {
|
||||||
|
let remainder = x % y
|
||||||
|
x = y
|
||||||
|
y = remainder
|
||||||
|
}
|
||||||
|
return x
|
||||||
|
}
|
||||||
|
|
||||||
|
fn clamp(value, low, high) {
|
||||||
|
return max(low, min(value, high))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn isPrime(n) {
|
||||||
|
if (n < 2) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
var divisor = 2
|
||||||
|
while (divisor * divisor <= n) {
|
||||||
|
if (n % divisor == 0) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
divisor = divisor + 1
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
// Text helpers built on the standard string methods.
|
||||||
|
|
||||||
|
fn capitalize(text) {
|
||||||
|
if (text.len() == 0) {
|
||||||
|
return text
|
||||||
|
}
|
||||||
|
let head = text.substring(0, 1).upper()
|
||||||
|
let rest = text.substring(1, text.len())
|
||||||
|
return head + rest
|
||||||
|
}
|
||||||
|
|
||||||
|
fn repeat(text, times) {
|
||||||
|
var joined = ""
|
||||||
|
var i = 0
|
||||||
|
while (i < times) {
|
||||||
|
joined = joined + text
|
||||||
|
i = i + 1
|
||||||
|
}
|
||||||
|
return joined
|
||||||
|
}
|
||||||
|
|
||||||
|
fn padLeft(text, width, filler) {
|
||||||
|
var padded = text
|
||||||
|
while (padded.len() < width) {
|
||||||
|
padded = filler + padded
|
||||||
|
}
|
||||||
|
return padded
|
||||||
|
}
|
||||||
|
|
||||||
|
fn trimAll(parts) {
|
||||||
|
return parts.map(fn(part) { return part.trim() })
|
||||||
|
}
|
||||||
Reference in new issue
Block a user