## XY:一种连接性语言概要 XY 是一种连接性编程语言,源自 K 和 Joy,围绕两个核心数据结构构建:**栈 (X)**,用于存储计算数据,和 **队列 (Y)**,包含剩余指令。计算通过迭代地从队列中取出一个元素,并将其应用于栈和队列,生成两者的新版本来进行。 XY 使用 K 的数据类型和 20 个动词,提供双元和单元形式,以及 K 的副词和系统函数。它借鉴了 Joy 的一元运算符,但将其调整为同时操作栈和队列。 至关重要的是,XY 是“无栈的”——每次步骤都会传递当前延续。这使得像非终止递归这样的特性能够简单地通过将函数推回队列来定义。 关键的原始指令操作队列:`->`(跳转到),`=>`(追加到队列),`/`(前置到队列),以及 `` ` ``(列表/函数原子转换)。**模式**,定义在花括号 `{}` 内,允许对栈元素进行解构,并将代码注入到队列中。**洗牌符号**(例如 `abc--bca`)提供了一种简洁的模式定义语法。 XY 程序是惰性求值的列表,定义使用 `;` 符号创建。最近的修订版 (XY 0) 简化了语言,删除了模式并增强了洗牌符号。可以加载脚本以实现模块化,默认的 `xy.xy` 脚本提供核心模块。