# hasktest **Repository Path**: graviton/hasktest ## Basic Information - **Project Name**: hasktest - **Description**: haskell test - **Primary Language**: Haskell - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-24 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # haskTest Haskell 学习与实验项目集合. ## 环境准备 安装 haskell 的依赖, on ubuntu, 运行 安装脚本时会提示 ```bash sudo apt install build-essential curl libffi-dev libffi8 libgmp-dev libgmp10 libncurses-dev pkg-config ``` 使用 [USTC](https://mirrors.ustc.edu.cn/help/ghcup.html) 安装 ghcup, cabal 等工具 ```bash curl --proto '=https' --tlsv1.2 -sSf https://mirrors.ustc.edu.cn/ghcup/sh/bootstrap-haskell | BOOTSTRAP_HASKELL_YAML=https://mirrors.ustc.edu.cn/ghcup/ghcup-metadata/ghcup-latest.yaml sh ## or 使用 上海交大源 curl --proto '=https' --tlsv1.2 -LsSf https://mirror.sjtu.edu.cn/ghcup/script/install.sh | sh ``` 系统依赖 ```bash sudo apt install libhdf5-dev ``` ## 子项目 ### testMain — 模块化测试框架 `testMain/` 下是一个自定义的 Haskell 测试框架, 支持测试分组, 选择性执行, 计时测量和彩色报告. ```bash cd testMain cabal build cabal run ``` ### scitest — 科学计算与绘图示例 `scitest/` 演示 **massiv** + **conduit** + **diagrams** 的综合运用: 流式读取 CSV 实验数据, 并行 Stencil 平滑, 输出热力图 SVG. ```bash cd scitest cabal build cabal run ``` ### turtles — Shell 脚本替代方案 `turtles/` 演示 **turtle** 库的典型 API, 通过带子命令的 CLI 展示 scaffold / rename / scan / mixed 操作. ```bash cd turtles cabal build cabal run ``` ### tutorial / realworld 其他 Haskell 学习代码片段, 按章节/主题组织. ## 工作区构建 根目录 `cabal.project` 配置了多包工作区, 可在根目录直接构建所有子项目: ```bash # 默认构建 (allow-newer 与本地 diagrams-lib 补丁已在 cabal.project 中配置) cabal build all ``` > 注意: 仓库在 `vendor/diagrams-lib/` 下放了一份打过补丁的 `diagrams-lib-1.5.1`, > 修复了它与 `diagrams-solve-0.2` 的不兼容 (`solveTriDiagonal` 参数由 `[a]` > 改为 `NonEmpty a`). 详见 `CLAUDE.md`. ## 常用命令 ```bash # 更新包索引 cabal update # 构建当前目录项目 cabal build # 运行当前项目 cabal run # 清理构建产物 cabal clean ```