@fraczak/k

中文文档
8.8.0发布于 2026/11/13ISCESM + CJS近 30 天下载 3034

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

中文使用文档
文档目录6 节
  1. 一个小例子
  2. 从源头运行
  3. 图书馆和实例
  4. Java 脚本 API
  5. 发展
  6. 释放检查

页:1

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

在浏览器中尝试 k • 妇女 开始 • 妇女 文档

这个 关于泽诺多的文件 介绍语言. 内容 LaTeX 来源 财务报告和审定财务报表 专题报告 在这里 仓库.

一个小例子

此关系互换两个字段:

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

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

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

从源头运行

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

npm install
node repl.mjs

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

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

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

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

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

构建独立浏览器 REPL npm run build:repl-html,然后打开 repl.html见 走过 递归 关系、图书馆和密码.

图书馆和实例

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

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

Java 脚本 API

import k from "@fraczak/k";

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

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

发展

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

见 测试/README.md 用于套房边界和可选工具. 语法变化要求 npm run prepare; 生成的解析器未编辑 手边.

这个 编译指南 绘制执行和执行图 层. 网络大会, (中文(简体) ), 萨尔瓦多,则 VS 代码扩展 有他们自己的使用指令.

k是实验性:语法、诊断、图书馆和文物格式 变化。 发布历史在 变动情况。 。 。 .

释放检查

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

版本与发布记录

@fraczak/k 共发布 86 个版本,首次发布于 2022/11/28;过去 12 个月发布了 47 个版本。

版本发布日期距今
8.8.0latest2026/11/132 天前
8.7.12026/11/096 天前
8.7.02026/11/087 天前
8.6.12026/11/0510 天前
8.6.02026/11/0412 天前
8.5.12026/11/0114 天前

关于 @fraczak/k 的常见问题

@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 和提交记录判断。