Skip to content

Commit 5ccca66

Browse files
committed
文档更新
1 parent fb804fb commit 5ccca66

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+3362
-6
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
- AI 编程友好
1010
- 小巧且快速
1111

12-
<img src="GoldfishScheme-logo.png" alt="示例图片" style="width: 360pt;">
12+
<img src="./docs/public/GoldfishScheme-logo.png" alt="示例图片" style="width: 360pt;">
1313

1414
## 以简为美
1515

README_ZH.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
- AI 编程友好
1010
- 小巧且快速
1111

12-
<img src="GoldfishScheme-logo.png" alt="示例图片" style="width: 360pt;">
12+
<img src="./docs/public/GoldfishScheme-logo.png" alt="示例图片" style="width: 360pt;">
1313

1414
## 以简为美
1515

docs/.vitepress/config.mts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import { defineConfig } from 'vitepress'
44
export default defineConfig({
55
title: 'Goldfish Scheme',
66
description: '让 Scheme 和 Python 一样易用且实用',
7-
7+
88
// 构建输出目录 (docs/dist/)
99
outDir: './dist',
10-
10+
1111
// 基础配置 (GitHub Pages 项目站点需要设置子路径)
1212
base: '/case-lambda/',
13-
13+
1414
// 清理 URL
1515
cleanUrls: true,
1616
})

docs/api/index.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# API 文档
2+
3+
Goldfish Scheme 提供了丰富的 API,分为三个主要部分:
4+
5+
## Liii 库
6+
7+
Goldfish Scheme 的扩展库,提供类似 Python 的实用功能。
8+
9+
- [基础库](./liii/) - `(liii base)`, `(liii error)`, `(liii check)`
10+
- [数据结构](./liii/) - `(liii list)`, `(liii vector)`, `(liii string)`,
11+
`(liii hash-table)`
12+
- [系统与 IO](./liii/) - `(liii sys)`, `(liii os)`, `(liii path)`
13+
- [网络与数据](./liii/) - `(liii http)`, `(liii json)`, `(liii uuid)`
14+
- [函数式编程](./liii/) - `(liii case)`, `(liii option)`, `(liii either)`,
15+
`(liii range)`
16+
17+
## SRFI
18+
19+
Scheme Request for Implementation 标准实现。
20+
21+
- [SRFI-1](./srfi/) - List 库
22+
- [SRFI-8](./srfi/) - Receive
23+
- [SRFI-9](./srfi/) - Records
24+
- [SRFI-13](./srfi/) - String 库
25+
- [SRFI-16](./srfi/) - Case-lambda
26+
- [更多...](./srfi/)
27+
28+
## R7RS 标准
29+
30+
R7RS-small 标准库。
31+
32+
- [(scheme base)](./scheme/) - 基础库
33+
- [(scheme case-lambda)](./scheme/) - Case-lambda
34+
- [(scheme char)](./scheme/) - 字符库
35+
- [(scheme file)](./scheme/) - 文件操作
36+
- [(scheme time)](./scheme/) - 时间库

docs/api/liii/base.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# (liii base)
2+
3+
基础例程库,扩展了 R7RS `(scheme base)`
4+
5+
## 导入
6+
7+
```scheme
8+
(import (liii base))
9+
```
10+
11+
## 函数
12+
13+
### 比较操作
14+
15+
#### `==`
16+
17+
数值相等比较。
18+
19+
```scheme
20+
(== 1 1) ; => #t
21+
(== 1 1.0) ; => #t
22+
```
23+
24+
#### `!=`
25+
26+
数值不等比较。
27+
28+
```scheme
29+
(!= 1 2) ; => #t
30+
(!= 1 1) ; => #f
31+
```
32+
33+
### 函数操作
34+
35+
#### `compose`
36+
37+
函数组合。
38+
39+
```scheme
40+
((compose square add1) 5) ; => 36
41+
```
42+
43+
#### `identity`
44+
45+
恒等函数。
46+
47+
```scheme
48+
(identity 42) ; => 42
49+
```
50+
51+
#### `any?`
52+
53+
总是返回 `#t` 的谓词。
54+
55+
```scheme
56+
(any? 'foo) ; => #t
57+
(any? 123) ; => #t
58+
```
59+
60+
### 列表操作
61+
62+
#### `loose-car`
63+
64+
安全的 `car`,空列表返回空列表。
65+
66+
```scheme
67+
(loose-car '(1 2 3)) ; => 1
68+
(loose-car '()) ; => ()
69+
```
70+
71+
#### `loose-cdr`
72+
73+
安全的 `cdr`,空列表返回空列表。
74+
75+
```scheme
76+
(loose-cdr '(1 2 3)) ; => (2 3)
77+
(loose-cdr '()) ; ()
78+
```
79+
80+
###
81+
82+
#### `typed-lambda`
83+
84+
带类型检查的 lambda。
85+
86+
```scheme
87+
((typed-lambda ((n integer?))
88+
(* n n)) 5) ; => 25
89+
90+
((typed-lambda ((n integer?))
91+
(* n n)) "foo") ; => error: type-error
92+
```
93+
94+
## R7RS 基础
95+
96+
同时导出 R7RS `(scheme base)` 的所有绑定:
97+
98+
- 定义: `define`, `lambda`, `case`, `cond`, `if`
99+
- 数值: `+`, `-`, `*`, `/`, `abs`, `square`, `max`, `min`
100+
- 列表: `cons`, `car`, `cdr`, `list`, `map`, `append`
101+
- 等等...

docs/api/liii/bitwise.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# (liii bitwise)
2+
3+
位运算库,基于 SRFI-151。
4+
5+
## 导入
6+
7+
```scheme
8+
(import (liii bitwise))
9+
```
10+
11+
## 基本运算
12+
13+
### `bitwise-and`
14+
15+
按位与。
16+
17+
```scheme
18+
(bitwise-and 5 3)
19+
;; => 1 ; 101 & 011 = 001
20+
```
21+
22+
### `bitwise-ior`
23+
24+
按位或。
25+
26+
```scheme
27+
(bitwise-ior 5 3)
28+
;; => 7 ; 101 | 011 = 111
29+
```
30+
31+
### `bitwise-xor`
32+
33+
按位异或。
34+
35+
```scheme
36+
(bitwise-xor 5 3)
37+
;; => 6 ; 101 ^ 011 = 110
38+
```
39+
40+
### `bitwise-not`
41+
42+
按位非。
43+
44+
```scheme
45+
(bitwise-not 5)
46+
;; => -6 ; ~101 = ...11111010
47+
```
48+
49+
## 位移
50+
51+
### `arithmetic-shift`
52+
53+
算术移位。
54+
55+
```scheme
56+
(arithmetic-shift 5 2)
57+
;; => 20 ; 5 << 2 = 10100
58+
59+
(arithmetic-shift 20 -2)
60+
;; => 5 ; 20 >> 2 = 101
61+
```
62+
63+
## 位测试
64+
65+
### `bit-set?`
66+
67+
测试位是否设置。
68+
69+
```scheme
70+
(bit-set? 0 5)
71+
;; => #t ; 5 = 101, bit 0 is 1
72+
73+
(bit-set? 1 5)
74+
;; => #f ; 5 = 101, bit 1 is 0
75+
76+
(bit-set? 2 5)
77+
;; => #t ; 5 = 101, bit 2 is 1
78+
```
79+
80+
## 位操作
81+
82+
### `copy-bit`
83+
84+
设置或清除某一位。
85+
86+
```scheme
87+
(copy-bit 1 5 #t)
88+
;; => 7 ; 101 -> 111
89+
90+
(copy-bit 0 5 #f)
91+
;; => 4 ; 101 -> 100
92+
```
93+
94+
### `bit-count`
95+
96+
计算置位位数。
97+
98+
```scheme
99+
(bit-count 5)
100+
;; => 2 ; 101 has 2 bits set
101+
102+
(bit-count -1)
103+
;; => -1 ; all bits set in two's complement
104+
```
105+
106+
## 更多函数
107+
108+
更多位运算函数请参见 [(srfi srfi-151)](../srfi/srfi-151.md)

docs/api/liii/case.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# (liii case)
2+
3+
模式匹配库。
4+
5+
## 导入
6+
7+
```scheme
8+
(import (liii case))
9+
```
10+
11+
## 函数
12+
13+
### `case*`
14+
15+
增强的 `case` 表达式,支持模式匹配。
16+
17+
```scheme
18+
(case* expr
19+
(pattern1 result1)
20+
(pattern2 result2)
21+
(else default-result))
22+
```
23+
24+
## 示例
25+
26+
```scheme
27+
(import (liii case)
28+
(liii base))
29+
30+
;; 基本模式匹配
31+
(case* '(1 2 3)
32+
((a b c) (+ a b c))
33+
(else 0))
34+
;; => 6
35+
36+
;; 匹配列表
37+
(case* '(hello world)
38+
((x y) (list y x))
39+
(else '()))
40+
;; => (world hello)
41+
```

docs/api/liii/check.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# (liii check)
2+
3+
基于 SRFI-78 的轻量级测试框架。
4+
5+
## 导入
6+
7+
```scheme
8+
(import (liii check))
9+
```
10+
11+
## 函数
12+
13+
### `check`
14+
15+
检查表达式是否等于期望值。
16+
17+
```scheme
18+
(check (+ 1 2) => 3)
19+
(check (square 5) => 25)
20+
```
21+
22+
### `check-catch`
23+
24+
检查是否抛出指定异常。
25+
26+
```scheme
27+
(check-catch 'type-error (require-int "foo"))
28+
(check-catch 'value-error (safe-divide 1 0))
29+
```
30+
31+
### `check-report`
32+
33+
输出测试报告。
34+
35+
```scheme
36+
(check-report)
37+
;; => *** checks *** : 10 correct, 0 failed.
38+
```
39+
40+
## 完整示例
41+
42+
```scheme
43+
(import (liii base)
44+
(liii check))
45+
46+
(define (square n) (* n n))
47+
(define (factorial n)
48+
(if (= n 0)
49+
1
50+
(* n (factorial (- n 1)))))
51+
52+
(check (square 5) => 25)
53+
(check (factorial 5) => 120)
54+
(check (+ 1 2 3) => 6)
55+
56+
(check-report)
57+
```
58+
59+
## 运行测试
60+
61+
```bash
62+
gf test
63+
#
64+
gf my-test.scm
65+
```

0 commit comments

Comments
 (0)