跳转到内容

WhatLang

来自希顶维基
DGCK81LNN留言 | 贡献2025年10月18日 (六) 02:17的版本

WhatLang预防于 2024 年 6 月最初创造的一门基于栈的深奥编程语言(esolang),具有图灵完备性,其解释器使用 TypeScript 编写。

机制

WhatLang 有字符串(String)、数字(Number,64 位浮点数,含 NaN)、数组(Array,可变长度,允许混合类型)与未定义(Undefined)四种值类型,除了使用先进先出的堆栈作为操作数据的基本工具外,也可以操作命名的变量。

WhatLang 代码使用 ASCII 中数字、字母外的符号作为指令,每个指令都会执行对应的动作,包括栈操作(如\交换栈顶二值、:复制栈顶值、_丢弃栈顶值)、运算(+加法或字符串拼接、-*/%常规运算)、流程控制({}循环、!跳出)、数组操作(,;$读写删除元素)等;而使用 @ 指令可以调用函数,内置函数提供了其他一些重要的功能(如num@/str@/arr@类型转换、rand@随机数、len@获取序列长度等)。

应用

WhatLang 解释器作为一个 Koishi.js 插件诞生,在 QQ 机器人环境下通过内置函数提供了消息操作、网络请求、数据持久化存储的接口。最初由预防的个人 QQ 机器人「高C」搭载,但该机器人未持续运行提供服务。LNNBot 搭载了 WhatLang 解释器并借此提供了文言文和道本语语言偏好下的特殊数字显示格式按名称搜索 Unicode 字符七历转换单人 wordle 小游戏等多项功能。

代码示例

Hello World 程序:

`Hello, World!`

计算当前北京时间星期几及当前时间:

time@ 60000/ 480+: 60/:
24/ flr@ 4+ 7% "日一二三四五六"\,\_ "现在是星期"\+"的"+\
flr@ 24% "时"++\ flr@ 60% "分"++.

参见

外部链接