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] ; 语法糖形式
核心特性
诗意语法
使用文言文关键字,让代码充满古典韵味
函数式编程
支持高阶函数、闭包、递归等现代编程范式
模块系统
支持命名空间和模块化开发,代码组织清晰
高性能
基于成熟的运行时环境,执行效率优异
跨平台
支持多种操作系统和部署环境
插件化
支持脚本插件系统,功能可灵活扩展