目录
Lamina 内置库函数
[1] 数学函数
平方根函数:用于计算数值的精确平方根,若为完全平方数返回int,否则返回irrational。
sqrt(x) -> int/irrational
圆周率函数:返回精确的圆周率符号π,类型为irrational。
pi() -> irrational
自然常数函数:返回精确的自然常数符号e,类型为irrational。
e() -> irrational
正弦函数:计算角度的正弦值,支持精确数值输入,返回对应精度结果。
sin(x) -> rational/irrational/float
余弦函数:计算角度的余弦值,支持精确数值输入,返回对应精度结果。
cos(x) -> rational/irrational/float
绝对值函数:返回输入数值的绝对值,保持原类型不变。
abs(x) -> int/float/rational/irrational
自然对数函数:计算数值的自然对数(以e为底),返回对应精度结果。
log(x) -> rational/irrational/float
阶乘函数:计算非负整数的阶乘,支持int和bigint类型输入,返回对应整数类型。
factorial(n) -> int/bigint
[2] 向量/矩阵函数
向量点积函数:计算两个同维度向量的点积,返回数值类型。
dot(v1: array, v2: array) -> int/rational/float
向量叉积函数:计算两个三维向量的叉积,返回新的三维数组。
cross(v1: array, v2: array) -> array
向量模长函数:计算向量的模长(长度),返回精确数值类型。
norm(v: array) -> rational/irrational/float
矩阵行列式函数:计算二维方阵的行列式,返回数值类型。
det(mat: array) -> int/rational/float
[3] 工具函数
打印函数:向控制台输出一个或多个内容,结尾自动换行,无返回值。
print(...) -> null
输入函数:在控制台显示提示文本,获取用户输入内容,返回字符串类型。
input(prompt: string) -> string/float
小数转分数函数:将浮点数转换为精确有理数(分数),自动化简。
fraction(x: float) -> rational
分数转小数函数:将有理数转换为浮点数,支持按需保留精度。
decimal(x: rational) -> float
类型获取函数:返回变量类型名称,字符串形式表示。
typeof(x) -> string
深拷贝函数:对结构体、数组、匿名函数、模块等进行深拷贝,修改拷贝不影响原对象。
copy(x) -> any
大小获取函数:返回数组长度或结构体成员数量,返回int类型。
size(x: array/struct) -> int
断言函数:判断条件是否为true,若为false则抛出错误并显示自定义消息。
assert(condition: bool, msg: string = "") -> null
[4] 数组函数
数组遍历函数:遍历数组每个元素,对元素执行指定函数,无返回值。
foreach(arr: array, func: lambda) -> null
数组映射函数:遍历数组每个元素,用指定函数处理元素,返回新数组。
map(arr: array, func: lambda) -> array
数组查找函数:在数组中查找首个满足条件的元素,返回元素值或null。
find(arr: array, func: lambda) -> any/null
数组替换函数:替换数组中满足条件的元素,返回null。
replace(arr: array, func: lambda, new_val) -> null
[5] 字符串函数
字符串拼接函数:拼接多个字符串,返回拼接后的新字符串。
string::concat(...) -> string
字符获取函数:获取字符串指定索引位置的字符,返回字符ASCII码。
string::char_at(str: string, index: int) -> int
字符串长度函数:返回字符串字符个数,返回int类型。
string::length(str: string) -> int
子串截取函数:从指定索引开始截取指定长度子串,返回新字符串。
string::sub_string(str: string, start_index: int, len: int) -> string
子串替换函数:从指定索引开始,用新子串替换原字符串部分内容,返回新字符串。
string::replace_by_index(str: string, start_index: int, sub_str: string) -> string
[6] 随机函数
随机浮点数函数:返回0(含)到1(不含)之间的随机浮点数。
random::rand() -> float
随机整数函数:返回 [start, end] 范围内的随机整数(包含边界值)。
random::randint(start: int, end: int) -> int
随机字符串函数:从输入字符串中随机选取一个字符,返回字符。
random::randstr(chars: string) -> string
[7] 时间函数
时间获取函数:返回当前系统时间,格式 “HH:MM:SS”。
time::time() -> string
日期获取函数:返回当前系统日期,格式 “YYYY-MM-DD”。
time::date() -> string
日期格式化函数:将日期字符串按指定格式转换,返回格式化后的字符串。
time::format_date(date: string, format: string = "YYYY-MM-DD") -> string
[8] 程序控制函数
程序退出函数:终止当前程序,可指定退出码。
exit(code: int = 0) -> null
类型转换函数:将变量转换为字符串类型。
tostring(x) -> string
[9] 变量与函数查询函数
全局变量查询函数:返回当前所有全局变量名称列表。
vars() -> array
局部变量查询函数:返回当前作用域内所有局部变量名称列表。
locals() -> array