Skip to content

命令行用法

Goldfish Scheme 使用子命令来执行不同操作。

基本用法

bash
gf [子命令] [选项] [参数]

不带参数运行会显示帮助信息:

bash
$ gf
Goldfish Scheme 17.11.38 by LiiiLabs

Commands:
  help               Display this help message
  version            Display version
  eval CODE          Evaluate Scheme code
  load FILE          Load Scheme code from FILE, then enter REPL
  repl               Enter interactive REPL mode
  run TARGET         Run main function from target
  test               Run tests
  fix PATH           Format Scheme code
  FILE               Load and evaluate Scheme file directly

子命令

version

显示版本信息:

bash
$ gf version
Goldfish Scheme 17.11.38 by LiiiLabs
based on S7 Scheme 11.5 (22-Sep-2025)

eval

直接执行 Scheme 代码:

bash
# 简单表达式
$ gf eval "(+ 1 2)"
3

# 导入库后执行
$ gf eval "(begin (import (srfi srfi-1)) (first (list 1 2 3)))"
1

# 访问命令行参数
$ gf eval "(begin (import (liii sys)) (display (argv)))" 1 2 3
("bin/gf" "eval" "..." "1" "2" "3")

load

加载文件并进入 REPL:

bash
gf load tests/goldfish/liii/base-test.scm

repl

启动交互式 REPL:

bash
gf repl

run

运行指定目标:

bash
gf run myprogram.scm

test

运行测试:

bash
gf test

fix

格式化 Scheme 代码:

bash
gf fix myprogram.scm

模式选项

使用 -m--mode 指定标准库模式:

模式描述
default等同于 r7rs
liiiGoldfish Scheme + (liii base), (liii error), (liii string)
schemeGoldfish Scheme + (liii base)(liii error)
sicpS7 Scheme + (scheme base)(srfi sicp)
r7rsS7 Scheme + (scheme base)
s7纯 S7 Scheme

示例:

bash
gf -m liii eval "(string-join '(a b))"

库搜索路径

添加额外的库搜索目录:

bash
# 前置目录
gf -I ~/.local/goldfish/mylibs eval "(import (mylib))"

# 追加目录
gf -A /opt/goldfish/libs eval "(import (extralib))"

Goldfish 会自动加载 ~/.local/goldfish/ 下符合 xxx-yyy 格式且包含 .scm 文件的目录。

直接运行文件

bash
gf myprogram.scm

等同于先 load 再执行文件。

基于 Apache 2.0 许可发布