地狱:Shell 脚本的 Haskell 方言

  • Hell 简介:Hell 是一种 shell 脚本语言,是 Haskell 的一个小方言,用于作者的 shell 脚本目的。截至 2 月,用于生成博客,取代 Hakyll。2024 年 10 月 3 日开始在工作中的大型脚本中使用,结合 Terraform 和各种 API。
  • Bash 等的问题:难以理解、使用引号易犯错、过度依赖子进程导致基本操作无原则易出错,如等式、算术、排序等方面充满陷阱。
  • Shell 脚本语言的特点:应非常基础、立即运行(无可见编译步骤)、无模块系统、无包系统、无抽象能力(类、复杂数据类型、多态函数等)、不向后不兼容地改变。
  • 选择 Haskell 方言的原因:作者熟悉 Haskell,是首选,在等式、排序等方面有良好基础,有良好运行时能轻松处理并发,是垃圾回收的,能正确区分字节和文本,可编译为静态 Linux x86 二进制文件,性能好且有静态类型。
  • 设计语言的决策:使用忠实的 Haskell 语法解析器以实现复用,无导入/模块/包,不支持递归定义但可用fix,支持基本类型类(Eq、Ord、Show、Monad),不支持多态类型,使用与 Haskell 中相同的名称以复用直觉。
  • 获取资源:可从发布页面下载静态链接的 Linux 二进制文件,阅读Hell 之旅了解实现内部细节。
  • 相关注释说明:包含对各种相关问题和其他语言的参考及解释,如对 Hakyll 问题的厌倦、ShellCheck 的 linting 问题、关于代码执行的博客文章、对 zx 等语言的排除说明等。
阅读 15
0 条评论