# goldfish hack2 **Repository Path**: JackYansongLi/goldfish-hack2 ## Basic Information - **Project Name**: goldfish hack2 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Calc Calculator 一个基于 Goldfish Scheme 实现的计算器,支持算术运算、函数定义、向量和数学函数。 ## 快速开始 ### 运行 REPL ```bash gf repl.scm ``` REPL 启动后会显示 `>` 提示符,可以输入表达式进行计算: ``` > 1 + 2 3 > 2 ^ 10 1024 > f(x) = x * 2 defined f > f(5) 10 > ,q Goodbye! ``` REPL 命令: - `,q` 或 `,quit` - 退出 REPL - 空行 - 继续输入 ### 批量求值 使用 `eval.scm` 从标准输入读取多行表达式: ```bash echo "1 + 2" | gf eval.scm ``` 或从文件读取: ```bash gf eval.scm < input.txt ``` ## 运行测试 ### 运行所有测试 ```bash gf run_all_tests.scm ``` 这将运行 `tests/resources/` 目录下的 150 个测试用例,显示通过和失败的数量。 ### 运行单个测试 ```bash gf test_runner.scm 001 ``` 其中 `001` 是测试编号(001-150)。 ## 支持的语法 ### 基本运算 ``` > 1 + 2 * 3 7 > (1 + 2) * 3 9 > 2 ^ 3 ^ 2 # 右结合: 2^(3^2) = 512 512 ``` ### 函数定义 ``` > f(x) = x * x defined f > f(4) 16 > g(x, y) = x + y defined g > g(3, 4) 7 ``` ### 内置函数 ``` > sin(0) 0.0 > sqrt(16) 4.0 > log(100) 4.605170186075402 ``` ### 向量 ``` > v = [1, 2, 3] defined v > v + [4, 5, 6] (5, 7, 9) > v * 2 (2, 4, 6) ``` ## 项目结构 ``` . ├── repl.scm # REPL 入口 ├── eval.scm # 批量求值脚本 ├── run_all_tests.scm # 运行所有测试 ├── test_runner.scm # 单个测试运行器 ├── test_single.scm # 简单功能测试 └── liii/ ├── calc-token.scm # 词法分析 ├── calc-env.scm # 环境管理 ├── calc-eval.scm # 表达式求值 ├── calc-func.scm # 内置函数 ├── calc-vector.scm # 向量运算 └── calc-repl.scm # REPL 实现 ``` ## 开发环境 - Goldfish Scheme v17.11.37 - 命令行工具: `gf` 查询库文档: ```bash gf doc liii/list gf doc "append" ``` ## 代码风格 本项目遵循 Agentic Interface 代码风格: - 显式的左侧和右侧标记(如 `) ;define`) - 2 空格缩进 - 开闭括号同列 - 每行不超过 100 字符 详见 [CLAUDE.md](CLAUDE.md)