目录

基础语法

[1] 变量声明

模板:

// 普通变量
var var_name = expression;
 
// 大整数变量(任意精度)
bigint big_var_name = expression;

示例:

var pi = 3.1415; // 浮点数
var score = 95; // 整数
var half = 1/2; // 有理数(自动以分数形式存储)
bigint fact_25 = 25!; // 大整数(25的阶乘)

[2] 注释

模板:

// 单行注释
/* 块注释:可多行 */

示例:

// 单行注释
var radius = 5; // 半径变量
 
/*
块注释示例:
计算圆面积
*/
var area = pi() * radius ^ 2;

[3] 条件语句(if-else)

模板:

if condition {
    // 条件为 true 执行
} else {
    // 条件为 false 执行
}

示例:

var num = 8;
if num > 0 {
    print("num是正数");
} else {
    print("num是非正数");
}

[4] 循环语句

[4.1] while 循环

while condition {
    // 条件为 true 时重复执行
}

示例:

var count = 1;
while count <= 3 {
    print("当前计数:", count); // 输出 1,2,3
    count = count + 1;
}

[4.2] loop 无限循环

loop {
    if stop_condition {
        break; // 满足条件退出
    }
}

示例:

var i = 1;
loop {
    print("循环次数:", i);
    if i >= 2 {
        break;
    } // 执行2次后退出
    i = i + 1;
}

[5] 函数定义

[5.1] 无参函数

func func_name {
    // 函数体
    return value; // 可省略返回
}

示例:

func say_hello {
    print("Hello, Lamina!");
}
say_hello();

[5.2] 有参函数

func func_name(param1, param2) {
    return result;
}

示例:

func add(a, b) {
    return a + b;
}
var sum = add(3, 5);
print("3 + 5 =", sum);

[6] 匿名函数

var func_var = do |param1, param2| { return result; };
var multi_line_func = do |param1, param2| {
    // 函数体
    return result;
};
var simple_func = |param1, param2| expression;

示例:

var multiply = do |x, y| { return x * y; };
print("4 * 6 =", multiply(4, 6));
 
var add = |a, b| a + b;
print("1 + 33 =", add(1, 33));

[7] 结构体声明

var struct_name = {
    key1 = value1;
    key2 = value2;
};

示例:

var student = {
    name = "Tom";
    age = 15;
    scores = [90, 85, 92];
};

[8] 结构体成员访问

注意:暂时无法直接设置成员,可使用 setattr(struct, name, val)

模板:

struct_name.key; // 访问结构体的指定成员

示例:

var student = { name = "Tom"; age = 15; };
print("学生姓名:", student.name); // 输出 "学生姓名:Tom"
print("学生年龄:", student.age); // 输出 "学生年龄:15"

[9] 模块引入

模板:

include "module_path"; // 引入模块,自动补全 .lm 扩展名

示例:

include "math_utils"; // 引入数学工具模块
include "lib/vectors"; // 引入向量计算模块(相对路径)
var root = math::sqrt(2); // 通过命名空间访问模块函数

[10] 续行符

模板:

var long_expression = expression1 + expression2 + \
expression3 + expression4; // \ 用于拆分长表达式

示例:

var total = 10 + 20 + 30 +
40 + 50; // 等价于 var total = 10+20+30+40+50;
print("总和:", total); // 输出 "总和:150"