WhatLang:修订间差异
外观
无编辑摘要 |
小无编辑摘要 |
||
| 第4行: | 第4行: | ||
WhatLang 有字符串(String)、数字(Number,64 位浮点数,含 NaN)、数组(Array,可变长度,允许混合类型)与未定义(Undefined)四种值类型,除了使用先进先出的堆栈作为操作数据的基本工具外,也可以操作命名的变量。 | WhatLang 有字符串(String)、数字(Number,64 位浮点数,含 NaN)、数组(Array,可变长度,允许混合类型)与未定义(Undefined)四种值类型,除了使用先进先出的堆栈作为操作数据的基本工具外,也可以操作命名的变量。 | ||
WhatLang 代码使用 ASCII 中数字、字母外的符号作为指令,每个指令都会执行对应的动作,包括栈操作(如<code>\</code>交换栈顶二值、<code>:</code>复制栈顶值、<code>_</code>丢弃栈顶值)、运算(<code>+</code>加法或字符串拼接、<code>-*/%</code>常规运算)、流程控制(<code>{}</code>循环、<code>!</code>跳出)、数组操作(<code>,;$</code>读写删除元素)等;而使用 <code>@</code> 指令可以调用内置 | WhatLang 代码使用 ASCII 中数字、字母外的符号作为指令,每个指令都会执行对应的动作,包括栈操作(如<code>\</code>交换栈顶二值、<code>:</code>复制栈顶值、<code>_</code>丢弃栈顶值)、运算(<code>+</code>加法或字符串拼接、<code>-*/%</code>常规运算)、流程控制(<code>{}</code>循环、<code>!</code>跳出)、数组操作(<code>,;$</code>读写删除元素)等;而使用 <code>@</code> 指令可以调用函数,内置函数提供了其他一些重要的功能(如<code>num@</code>/<code>str@</code>/<code>arr@</code>类型转换、<code>rand@</code>随机数、<code>len@</code>获取序列长度等)。 | ||
== 应用 == | == 应用 == | ||
2025年10月18日 (六) 01:52的版本
WhatLang 是预防于 2024 年 6 月最初创造的一门基于堆栈的深奥编程语言(esolang),具有图灵完备性,其解释器使用 TypeScript 编写。
机制
WhatLang 有字符串(String)、数字(Number,64 位浮点数,含 NaN)、数组(Array,可变长度,允许混合类型)与未定义(Undefined)四种值类型,除了使用先进先出的堆栈作为操作数据的基本工具外,也可以操作命名的变量。
WhatLang 代码使用 ASCII 中数字、字母外的符号作为指令,每个指令都会执行对应的动作,包括栈操作(如\交换栈顶二值、:复制栈顶值、_丢弃栈顶值)、运算(+加法或字符串拼接、-*/%常规运算)、流程控制({}循环、!跳出)、数组操作(,;$读写删除元素)等;而使用 @ 指令可以调用函数,内置函数提供了其他一些重要的功能(如num@/str@/arr@类型转换、rand@随机数、len@获取序列长度等)。
应用
WhatLang 解释器作为一个 Koishi.js 插件诞生,在 QQ 机器人环境下通过内置函数提供了消息操作、网络请求、数据持久化存储的接口。LNNBot 搭载了 WhatLang 解释器并藉此提供了文言文和道本语语言偏好下的特殊数字显示格式、按名称搜索 Unicode 字符、七历转换、单人 wordle 小游戏等多项功能。