# @fraczak/k 中文文档

规范地址：https://npmcn.com/package/%40fraczak/k/

版本：8\.8\.0
npm 元数据更新时间：2026-11-13T06:24:31.145Z
中文译文更新时间：2026-11-15T11:45:07.143Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40fraczak/k
原文对照：https://npmcn.com/package/%40fraczak/k/?lang=original
项目主页：https://github.com/fraczak/k#readme
源码仓库：https://github.com/fraczak/k

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：2.4 MB，219 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：1 个
- 首次发布：2022-11-28T02:29:21.402Z
- 最新版本发布：2026-11-13T06:24:30.944Z
- 近 30 天下载量：3034（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：86（近 12 个月 47 个）

## 中文简介

k) 用于对代数数据类型(产品和标记结合)进行内容可处理的策略和数据转换的语言;包括运行时间、合同衍生、REPL和编码工具链

## 安装

```sh
npm install @fraczak/k
```

也可以使用：`pnpm add @fraczak/k`、`yarn add @fraczak/k`、`bun add @fraczak/k`

## README

# 页:1

k 是描述代数数据形状和组合的一种小语言 改变他们。 程序是一阶部分功能,叫做 _关系_由产品、有标签的工会和组成而来。 命名图案 描述可重复使用的计划;编译器生成结构输入/输出合同.

**[在浏览器中尝试 k](https://fraczak.github.io/k/)** • 妇女 **[开始](https://npmcn.com/package/%40fraczak/k/DOCS/GETTING_STARTED.md)** • 妇女 **[文档](https://npmcn.com/package/%40fraczak/k/DOCS/README.md)**

这个 [关于泽诺多的文件](https://zenodo.org/records/23652382) 介绍语言. 内容 [LaTeX 来源](https://npmcn.com/package/%40fraczak/k/paper/k-paper.tex) 财务报告和审定财务报表 [专题报告](https://npmcn.com/package/%40fraczak/k/paper/k-paper.pdf) 在这里 仓库.

## 一个小例子

此关系互换两个字段:

```k
swap = { .x y, .y x };
{ {} |hello x, {} |world y } swap
```

每个字段表达式得到相同的输入. 结果 `world` 下级 `x` 财务报告和审定财务报表 `hello` 下级 `y`. 某些投入可能无法定义关系 命令选择 `<f, g>` 尝试 `g` 何时 `f` 返回未定义.

所有值都是由产品和变体所形成的. 整数和字符串 库所定义的结构,有用于熟悉的外部表达的解码器.

## 从源头运行

使用Node.js 22+进行开发并进行浏览器测试. 已出版的运行时间支持Node.js 18+.

```sh
npm install
node repl.mjs
```

`npm install` 生成解析器。 从仓库的另一个终端 root,尝试完整的管道:

```sh
node codecs/unit.mjs --parse | node k.mjs '{} |ok' | node codecs/k-print.mjs
```

它印着 `"ok"`2\. 管道带有二进制图并附有有效载荷; 解码器命令处理文本边界.

要曝光您路径上的命令, 请运行 `npm link`相应的管道是:

```sh
k-unit --parse | k '{} |ok' | k-print
```

构建独立浏览器 REPL `npm run build:repl-html`,然后打开 `repl.html`见 [走过](https://npmcn.com/package/%40fraczak/k/DOCS/GETTING_STARTED.md) 递归 关系、图书馆和密码.

## 图书馆和实例

| 文件 | 目的 |
| --- | --- |
| [常规.k](https://npmcn.com/package/%40fraczak/k/core.k) | 独立位, Unicode 字符串, 以及自托管的图案计划(`bit[]`, (中文(简体) ), `bits[]`, (中文(简体) ), `list[X]`, (中文(简体) ), `string[]`, (中文(简体) ), `pattern[]`(中文(简体) ) |
| [自由/遗传学.k](https://npmcn.com/package/%40fraczak/k/lib/generic.k) | 代数类型,二进制尝试,以及字符串/比特编码器(`bool[]`, (中文(简体) ), `order[]`, (中文(简体) ), `opt[V]`, (中文(简体) ), `btrie[V]`, (中文(简体) ), `string_to_bits`, (中文(简体) ), `bits_to_string`(中文(简体) ) |
| [lib/整数.k](https://npmcn.com/package/%40fraczak/k/lib/integer.k) | 已签名的任意精度整数算术( X)`int[]`, (中文(简体) ), `nat`, (中文(简体) ), `int`, (中文(简体) ), `plus`, (中文(简体) ), `minus`, (中文(简体) ), `times` 通过卡拉苏巴, `divmod`, (中文(简体) ), `div`, (中文(简体) ), `mod`, (中文(简体) ), `gcd`, (中文(简体) ), `lcm`(中文(简体) ) |
| [页:1](https://npmcn.com/package/%40fraczak/k/lib/ieee.k) | 二进制64类型、上游、否定和合理转换(`float64[]`, (中文(简体) ), `negate_float64`, (中文(简体) ), `bits_to_float64`, (中文(简体) ), `ratio_to_float64`(中文(简体) ) |
| [独立/djson.k](https://npmcn.com/package/%40fraczak/k/lib/djson.k) | RFC 8259 JSON 分析器(`parse_json`)和动态JSON操作(`djson[]`, (中文(简体) ), `get`, (中文(简体) ), `nth`, (中文(简体) ), `set`, (中文(简体) ), `del`, (中文(简体) ), `push`, (中文(简体) ), `keys`, (中文(简体) ), `values`(中文(简体) ) |
| [实例/nat.k](https://npmcn.com/package/%40fraczak/k/Examples/nat.k) | 小皮诺算术示例 |
| [实例/poly.k](https://npmcn.com/package/%40fraczak/k/Examples/poly.k) | 多态列表操作 `int[]`; 装入 `lib/integer.k` 第一个 |
| [实例/ieee-算术.k](https://npmcn.com/package/%40fraczak/k/Examples/ieee-arithmetics.k) | 二进制64 算术返回 `{result, flags}`; 装入 `core.k` 财务报告和审定财务报表 `lib/ieee.k` 第一个 |

明确装入库 `:load` 在答复。 领导 `# --lib <dependency> --use <specs>` 源文件中的行是普通的 可读评论,记录预期的依赖性。 关于CLI, `--lib <dependency.klib>` 将库定义用于内存 内容散列( a)`@<hash>`),同时 `--use` 明确带来请求友好 名称或化名纳入汇编范围。 见 [文件格式和工具](https://npmcn.com/package/%40fraczak/k/DOCS/FILE_FORMATS.md)。 。 。 .

## Java 脚本 API

```js
import k from "@fraczak/k";

const fn = k.compile("{} |ok");
const result = fn(k.fromObject({}));
console.log(result.tag); // "ok"
```

编译函数返回 a `Value` 或者说 `undefined`A级 `Value` 携带其 结构模式及其有效载荷.

## 发展

```sh
npm test
npm run test:backends
npm --prefix k-vscode test
```

见 [测试/README.md](https://npmcn.com/package/%40fraczak/k/tests/README.md) 用于套房边界和可选工具. 语法变化要求 `npm run prepare`; 生成的解析器未编辑 手边.

这个 [编译指南](https://npmcn.com/package/%40fraczak/k/DOCS/ARCHITECTURE.md) 绘制执行和执行图 层. [网络大会](https://npmcn.com/package/%40fraczak/k/backends/wasm/README.md), (中文(简体) ), [萨尔瓦多](https://npmcn.com/package/%40fraczak/k/backends/llvm/README.md),则 [VS 代码扩展](https://npmcn.com/package/%40fraczak/k/k-vscode/README.md) 有他们自己的使用指令.

k是实验性:语法、诊断、图书馆和文物格式 变化。 发布历史在 [变动情况](https://npmcn.com/package/%40fraczak/k/CHANGELOG.md)。 。 。 .

## 释放检查

GitHub CI 运行主机、后端和编辑套件,然后安装包装 归档与生产依赖并检查其API和节点上的命令 页:1 运行 `npm run test:package -- /path/to/installed/@fraczak/k` 重复 包检查. `npm publish` 发布前运行主套房.

## 常见问题

### @fraczak/k 是什么？

k\) 用于对代数数据类型\(产品和标记结合\)进行内容可处理的策略和数据转换的语言;包括运行时间、合同衍生、REPL和编码工具链

### 如何安装 @fraczak/k？

在项目目录运行 npm install @fraczak/k，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 k、k-vm、k-int、k-kir、k-ieee、k-json、k-llvm、k-repl、k-show、k-unit、k-utf8、k-wasm，可以用 npx k 直接运行。

### @fraczak/k 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/fraczak\_\_k 是否存在。

### @fraczak/k 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @fraczak/k 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @fraczak/k 可以商用吗？

@fraczak/k 使用 ISC 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @fraczak/k 的下载量有多少？

根据 npm 官方下载统计，@fraczak/k 在 2026/10/16 – 2026/11/14 这 30 天内被下载 3,034 次，日均约 101 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @fraczak/k 还在维护吗？

最新版本 8\.8\.0 发布于 2026/11/13（2 天前）；至今共发布 86 个版本，其中过去 12 个月发布了 47 个；首次发布于 2022/11/28。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

