AETHER

文言编程语言 - 让代码充满诗意

代码演示

🔢 斐波那契数列

[序 [定 fib [术 [n] [循 [次 n 现 0 后 1] [若 [次 等 0] 现 [返 [次 减 1] 后 [现 加 后]]]]]] [示 "斐波那契前十"] [示 [映 fib [范 10]]]]

🎯 数据筛选与处理

[序 [定 炼 [术 [界 数据] [贯 数据 [筛 [术 [x] [[x 余 2] 等 0]]] [映 [术 [x] [x 乘 x]]] [筛 [术 [x] [x 大 界]]] [冶 +]]]] [定 原始 [范 20]] [示 "原始能量:" 原始] [示 "精炼能量:" [炼 100 原始]]]

🤖 事件处理系统

[序 [定 事件表 {}] [定 注册事件 [术 [类型 处理器] [置 事件表 类型 处理器]]] [定 分发事件 [术 [事件] [以 [类型 [取 事件 :type] 处理器 [取 事件表 类型]] [若 处理器 [处理器 事件] [示 "未注册的事件类型:" 类型]]]]]]

📊 统计分析

[序 [定 事件列表 [{:type :group-message} {:type :private-message} {:type :member-join}]] [定 计数器 [术 [累计 事件] [以 [类型 [取 事件 :type] 当前值 [取 累计 类型 0]] [置 累计 类型 [当前值 加 1]]]]] [定 统计结果 [冶 计数器 {} 事件列表]] [示 "事件统计:" 统计结果]]

文言词典

📝 基础定义与绑定

定义变量
[定 x 10] ; 定义 x 为 10
函术(函数)
[术 [x] [x 乘 x]] ; 定义平方函数
以……为界(局部绑定)
[以 [a 1 b 2] [示 [a 加 b]]] ; 局部绑定
源(引用)
[源 原子引用] ; 解引用原子

🎮 控制流

若然则(条件判断)
[若 [x 大 5] [示 "大"] [示 "小"]] ; 条件判断
循环
[循 [i 0] [若 [i 小 10] [序 [示 i] [返 [i 加 1]]]]] ; 循环
返还(递归)
[返 [i 加 1]] ; 在tail position递归
序列(顺序执行)
[序 [示 "第一步"] [示 "第二步"]] ; 顺序执行
多择 多条件选择
[多择 [x 大 10] "大" [x 大 5] "中" "小"] ; 多条件选择
据择 据值选择
[据择 x 1 "一" 2 "二" "其他"] ; 根据值选择
类择 分类选择
[类择 x String "字符串" Number "数字" "其他"] ; 按类型选择
非则 非则执行
[非则 [x 小 5] [示 "x不小"]] ; 条件不满足时执行
有值则 有值则执行
[有值则 x [示 x]] ; 值存在时执行
若有值 若有值则
[若有值 x [示 x] [示 "无值"]] ; if-let模式
若非 若非则
[若非 [x 大 5] [示 "x不大"]] ; unless

📦 集合操作

映射
[映 [术 [x] [x 乘 2]] [范 5]] ; [0 2 4 6 8]
筛选
[筛 [术 [x] [[x 余 2] 等 0]] [范 10]] ; [0 2 4 6 8]
冶炼(归约)
[冶 + [范 5]] ; 10
首元素
[首 [1 2 3]] ; 1
尾序列
[尾 [1 2 3]] ; (2 3)
计数
[数 [1 2 3 4]] ; 4
添加元素
[添 [1 2] 3] ; [1 2 3]
范围
[范 5] ; (0 1 2 3 4)
合并映射
[合 {:a 1} {:b 2}] ; {:a 1 :b 2}
全分 全部分块
[全分 [1 2 3 4] 2] ; [[1 2] [3 4]]
类分 按类分块
[类分 [1 2 "3" "4"] number?] ; [[1 2] ["3" "4"]]
类聚 按类聚合
[类聚 [1 2 "3" "4"] number?] ; {true [1 2] false ["3" "4"]}
频计 频率计数
[频计 [1 2 1 3 2 1]] ; {1 3 2 2 3 1}
去重 去除重复
[去重 [1 2 1 3 2]] ; (1 2 3)
乱序 打乱顺序
[乱序 [1 2 3 4 5]] ; 随机顺序
逆序 反转顺序
[逆序 [1 2 3 4]] ; (4 3 2 1)
序排 顺序排列
[序排 [3 1 4 2]] ; (1 2 3 4)
据排 依据排列
[据排 > [3 1 4 2]] ; (4 3 2 1)
交错 交错编织
[交错 [1 2 3] [4 5 6]] ; (1 4 2 5 3 6)
间置 间隔插入
[间置 [1 2 3] 0] ; (1 0 2 0 3)
取末 取最后N个
[取末 3 [1 2 3 4 5]] ; (3 4 5)
取第 取第N个
[取第 2 [1 2 3 4]] ; 2 (从0开始)
映列 映射为向量
[映列 [术 [x] [x 乘 2]] [范 3]] ; [0 2 4]
筛列 筛选为向量
[筛列 [术 [x] [[x 余 2] 等 0]] [范 5]] ; [0 2 4]
化为 转化为
[化为 vector '(1 2 3)] ; [1 2 3]
展平 展平嵌套
[展平 [[1 2] [3 4]]] ; (1 2 3 4)
连接 连接序列
[连接 [[1 2] [3 4]]] ; (1 2 3 4)
合表 合并为表
[合表 [1 2] [3 4]] ; {0 1 1 2 2 3 3 4}

🔍 数据访问与修改

取值
[取 {:a 1} :a] ; 1
置入
[置 {:a 1} :b 2] ; {:a 1 :b 2}
原子变量
[易 10] ; 创建原子
延迟 延迟计算
[延迟 [示 "延迟计算"]] ; 延迟表达式
强求 强制求值
[强求 延迟对象] ; 强制计算
承诺 承诺值
[承诺 [耗时计算]] ; 创建承诺
送达 送达值
[送达 承诺值] ; 送达promise
将来 将来值
[将来 [异步计算]] ; 创建future
交换 交换值
[交换 原子 [术 [旧值] [旧值 乘 2]]] ; 交换并更新
重置 重置值
[重置 原子 0] ; 重置为0
比较置 比较设置
[比较置 原子 5 新值] ; 仅当值为5时更新

⚠️ 异常处理

异息 异常信息
[异息 异常对象] ; 获取异常消息
异据 异常数据
[异据 异常对象] ; 获取异常数据
异因 异常原因
[异因 异常对象] ; 获取异常原因
尝试 尝试执行
[尝试 [可能有错的表达式]] ; 捕获异常
捕获 捕获异常
[捕获 异常 [处理函数]] ; 捕获并处理
终究 终究执行
[终究 [示 "总会执行"]] ; finally块

🔗 函数组合与应用

贯穿(thread-last)
[贯 [范 10] [筛 [术 [x] [[x 余 2] 等 0]]] [映 [术 [x] [x 乘 2]]]] ; (0 4 8 12 16)
导引(thread-first)
[导 {:a {:b 2}} :b] ; 2
汇总应用
[汇 + [1 2 3]] ; 6
合成 函数合成
[合成 [术 [x] [x 加 1]] [术 [x] [x 乘 2]]] ; 组合函数
偏函 偏函数
[偏函 + 10] ; 返回加10的函数
并施 并列施行
[并施 [术 [x] [x 乘 2]] [术 [x] [x 加 1]] 5] ; 并行应用
反函 反函数
[反函 >] ; 返回 <= 函数
恒常 恒常函数
[恒常 42] ; 总是返回42的函数
全谓 全满足谓词
[全谓 正数? [1 2 3 4]] ; 所有元素都是正数?
或函 或函数
[或函 正数? 负数?] ; 正数或负数

🔢 数值运算

升(加一)
[升 5] ; 6
降(减一)
[降 5] ; 4
极小 极小值
[极小 3 1 4 2] ; 1
极大 极大值
[极大 3 1 4 2] ; 4
绝对 绝对值
[绝对 -5] ; 5
整除 整数除法
[整除 7 3] ; 2
余数 余数
[余数 7 3] ; 1
求余 求余数
[求余 7 3] ; 1

🎲 随机与其他

乱数
[乱 10] ; 0-9随机数
打印
[示 "你好"] ; 打印"你好"
[非 true] ; false
串化 转为字符串
[串化 123] ; "123"
截取 截取子串
[截取 "hello" 1 4] ; "ell"
格式化 格式化字符串
[格式化 "值: %d" 42] ; "值: 42"
新行 新行符
[示 "Hello" 新行 "World"] ; 换行打印
断言 断言
[断言 [x 大 0] "x必须大于0"] ; 断言检查
真否 是否为真
[真否 "abc"] ; true
假否 是否为假
[假否 false] ; true
空否 是否为空
[空否 []] ; true
有值否 是否有值
[有值否 nil] ; false
如一 同一性
[如一 x x] ; true
随取 随机选取
[随取 [1 2 3 4 5]] ; 随机选择一个
生符 生成符号
[生符 "temp"] ; 生成符号temp
重复 重复
[重复 3 "a"] ; ("a" "a" "a")
重复施 重复施行
[重复施 3 [术 [] [示 "hi"]]] ; 重复3次
循环 循环
[循环 [i 0] [若 [i 小 3] [序 [示 i] [升 i]]]] ; 循环3次
迭代 迭代
[迭代 0 升 5] ; 5
计时 计时执行
[计时 [耗时操作]] ; 返回耗时和结果

➕ 中缀算术

加法
[5 加 3] ; 8
减法
[5 减 3] ; 2
乘法
[5 乘 3] ; 15
除法
[6 除 3] ; 2
取余
[7 余 3] ; 1

📏 中缀比较

大于
[5 大 3] ; true
小于
[3 小 5] ; true
等于
[3 等 3] ; true
不等 不等于
[3 不等 4] ; true
不大 不大(大于等于)
[3 不大 3] ; true
不小 不小(小于等于)
[3 不小 3] ; true

🧠 中缀逻辑

且(与)
[true 且 false] ; false
或(或)
[true 或 false] ; true

🌌 模块系统(元数据)

宇宙(命名空间声明)
[宇 my.module] ; 声明命名空间
需要(引入所有符号)
[需 other.module] ; 引入模块所有符号
使用(别名引入)
[用 other.module 为 other] ; 引入并取别名
为(作为,语法糖)
[定 x 为 10] ; 语法糖形式

核心特性

🎨

诗意语法

使用文言文关键字,让代码充满古典韵味

🔧

函数式编程

支持高阶函数、闭包、递归等现代编程范式

📦

模块系统

支持命名空间和模块化开发,代码组织清晰

高性能

基于成熟的运行时环境,执行效率优异

🌍

跨平台

支持多种操作系统和部署环境

🔌

插件化

支持脚本插件系统,功能可灵活扩展