以数组语言思考(2022)
摘要
ngn/k(一种数组编程语言)的全面教程,包含章节、词汇和练习,便于学习。
查看缓存全文
缓存时间: 2026/05/22 21:26
razetime/ngn-k-tutorial
来源:https://github.com/razetime/ngn-k-tutorial
ngn-k-tutorial
这是关于 ngn/k(https://codeberg.org/ngn/k)的教程。
- 网站:https://razetime.github.io/ngn-k-tutorial
- PDF:https://razetime.github.io/ngn-k-tutorial/ngn_k_tutorial.pdf
- EPUB:https://razetime.github.io/ngn-k-tutorial/ngn_k_tutorial.epub
如何使用本教程
本教程假定你具备一些基础的编程知识,并且对数组有基本的理解。
大多数章节末尾会有“词汇表”和“练习”部分。我建议你先熟悉词汇表,并完成各部分的练习,然后再进入下一课。
如果你对教程内容或练习感到困惑,欢迎加入 Matrix 上的 ngn/k 聊天室(https://app.element.io/#/room/#ngnk:matrix.org)(推荐),访问 APL Farm(https://aplwiki.com/wiki/APL_Farm),或者直接在此提交 issue。
如果你想对照我的练习答案,可以查看 code 文件夹。
进度
本教程已完整编写,除非 ngn/k 发生新的变化,否则不会增加更多章节。
之前列出的其他章节想法可能会在本教程之外的独立文章中涵盖。不过不保证哦 :)
致谢
- ngn(https://codeberg.org/ngn/k)提供了关于 ngn/k 内部运作的许多趣闻和实用知识
- @chrispsn、@Traws、@ColTim 为“序言”章节提供了思路和原始实现
- @HoosierEE 协助校对并进行了许多有用的编辑
- @DiscoDoug 为编写“数独”章节提供了大量帮助
- /u/mandus(https://old.reddit.com/u/mandus)提醒我本教程中有练习题
- @DestyNova 设置了网站、epub 和 pdf 所需的流程
- @yakubin 在折叠(folds)和扫描(scans)的修正上提供了帮助
最后,感谢所有帮助我确保本书质量、并在两年多的写作过程中提供支持的校对者。
相似文章
对 APL 等数组语言的有原则性重新思考
本文提出了一种有原则性的方法来重新思考 APL 等数组语言,通过将变量建模为输入维度的函数,旨在相较于传统方法提高可读性和错误检查能力。
Show HN: Nibble
Nibble 是一种类 C 的系统编程语言,用 3000 行 C 代码实现,无需外部依赖或堆分配即可生成 LLVM IR。它支持 defer、递归、多种类型、结构体、指针,并包含图形演示。
空间语言:二维代码编写
本文探讨了二维代码编写的概念,通过垂直链式调用和三目中缀运算符简化某些表达式,并以鸡舍门控制器等实际案例为例。
Joy 非正式教程
关于 Joy 编程语言的教程,这是一种基于函数组合和组合子的函数式语言,采用后缀表示法和基于栈的执行方式。
让语言模型学会用代码思考
本文介绍了 ThinC(Thinking in Code,用代码思考)框架。在该框架中,语言模型在简短的自然语言规划步骤后,仅使用代码块进行推理,在数学基准测试中优于现有的工具集成推理基线。