From 0b42f8309282b72564cef8fcb47f748f59bb96f9 Mon Sep 17 00:00:00 2001 From: wumo Date: Fri, 3 Apr 2026 15:01:23 +0800 Subject: [PATCH] =?UTF-8?q?[216=5F52]=20=E8=BF=81=E7=A7=BB=20list=E7=9A=84?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B=E5=88=B0scheme/base?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devel/216_52.md | 3 + tests/scheme/base-test.scm | 41 ++++++++++++ tests/scheme/{list => base}/append-test.scm | 0 tests/scheme/{list => base}/assoc-test.scm | 0 tests/scheme/{list => base}/assq-test.scm | 0 tests/scheme/{list => base}/assv-test.scm | 0 tests/scheme/{list => base}/caar-test.scm | 0 tests/scheme/{list => base}/cadr-test.scm | 0 tests/scheme/{list => base}/car-test.scm | 0 tests/scheme/{list => base}/cddr-test.scm | 0 tests/scheme/{list => base}/cdr-test.scm | 0 tests/scheme/{list => base}/length-test.scm | 0 .../scheme/{list => base}/list-copy-test.scm | 0 tests/scheme/{list => base}/list-p-test.scm | 0 tests/scheme/{list => base}/list-ref-test.scm | 0 .../{list => base}/list-set-bang-test.scm | 0 .../scheme/{list => base}/list-tail-test.scm | 0 tests/scheme/{list => base}/list-test.scm | 0 .../scheme/{list => base}/make-list-test.scm | 0 tests/scheme/{list => base}/member-test.scm | 0 tests/scheme/{list => base}/memq-test.scm | 0 tests/scheme/{list => base}/memv-test.scm | 0 tests/scheme/{list => base}/null-p-test.scm | 0 tests/scheme/{list => base}/pair-p-test.scm | 0 tests/scheme/{list => base}/reverse-test.scm | 0 .../{list => base}/set-car-bang-test.scm | 0 .../{list => base}/set-cdr-bang-test.scm | 0 tests/scheme/list-test.scm | 67 ------------------- 28 files changed, 44 insertions(+), 67 deletions(-) create mode 100644 devel/216_52.md rename tests/scheme/{list => base}/append-test.scm (100%) rename tests/scheme/{list => base}/assoc-test.scm (100%) rename tests/scheme/{list => base}/assq-test.scm (100%) rename tests/scheme/{list => base}/assv-test.scm (100%) rename tests/scheme/{list => base}/caar-test.scm (100%) rename tests/scheme/{list => base}/cadr-test.scm (100%) rename tests/scheme/{list => base}/car-test.scm (100%) rename tests/scheme/{list => base}/cddr-test.scm (100%) rename tests/scheme/{list => base}/cdr-test.scm (100%) rename tests/scheme/{list => base}/length-test.scm (100%) rename tests/scheme/{list => base}/list-copy-test.scm (100%) rename tests/scheme/{list => base}/list-p-test.scm (100%) rename tests/scheme/{list => base}/list-ref-test.scm (100%) rename tests/scheme/{list => base}/list-set-bang-test.scm (100%) rename tests/scheme/{list => base}/list-tail-test.scm (100%) rename tests/scheme/{list => base}/list-test.scm (100%) rename tests/scheme/{list => base}/make-list-test.scm (100%) rename tests/scheme/{list => base}/member-test.scm (100%) rename tests/scheme/{list => base}/memq-test.scm (100%) rename tests/scheme/{list => base}/memv-test.scm (100%) rename tests/scheme/{list => base}/null-p-test.scm (100%) rename tests/scheme/{list => base}/pair-p-test.scm (100%) rename tests/scheme/{list => base}/reverse-test.scm (100%) rename tests/scheme/{list => base}/set-car-bang-test.scm (100%) rename tests/scheme/{list => base}/set-cdr-bang-test.scm (100%) delete mode 100644 tests/scheme/list-test.scm diff --git a/devel/216_52.md b/devel/216_52.md new file mode 100644 index 00000000..13897aa6 --- /dev/null +++ b/devel/216_52.md @@ -0,0 +1,3 @@ +# [216_52] 迁移 list的测试用例到scheme/base + +## 2026/04/03 迁移 list的测试用例到scheme/base diff --git a/tests/scheme/base-test.scm b/tests/scheme/base-test.scm index c46b7dbc..5089ab56 100644 --- a/tests/scheme/base-test.scm +++ b/tests/scheme/base-test.scm @@ -90,3 +90,44 @@ ;; identity - 原样返回输入值 ;; any? - 判断是否存在真值 ;; typed-lambda - 带类型标注的 lambda 语法 + + +;; 六、序对操作 +;; pair? - 判断是否为序对 +;; car - 获取序对的 car 部分 +;; cdr - 获取序对的 cdr 部分 +;; set-car! - 修改序对的 car 部分 +;; set-cdr! - 修改序对的 cdr 部分 +;; caar - 获取 car 的 car +;; cadr - 获取 car 的 cdr +;; cddr - 获取 cdr 的 cdr + +;; 七、列表判断 +;; null? - 判断是否为空列表 +;; list? - 判断是否为列表 + +;; 八、列表构造 +;; make-list - 创建指定长度的列表 +;; list - 创建列表 +;; cons - 构造序对 + +;; 九、列表查询 +;; length - 获取列表长度 +;; append - 连接多个列表 +;; reverse - 反转列表 + +;; 十、列表选择 +;; list-tail - 获取列表尾部 +;; list-ref - 获取指定索引的元素 +;; list-set! - 修改指定索引的元素 +;; memq - 按 eq? 查找元素 +;; memv - 按 eqv? 查找元素 +;; member - 按 equal? 查找元素 + +;; 十一、关联列表 +;; assq - 按 eq? 在关联列表中查找 +;; assv - 按 eqv? 在关联列表中查找 +;; assoc - 按 equal? 在关联列表中查找 + +;; 十二、列表复制 +;; list-copy - 复制列表 \ No newline at end of file diff --git a/tests/scheme/list/append-test.scm b/tests/scheme/base/append-test.scm similarity index 100% rename from tests/scheme/list/append-test.scm rename to tests/scheme/base/append-test.scm diff --git a/tests/scheme/list/assoc-test.scm b/tests/scheme/base/assoc-test.scm similarity index 100% rename from tests/scheme/list/assoc-test.scm rename to tests/scheme/base/assoc-test.scm diff --git a/tests/scheme/list/assq-test.scm b/tests/scheme/base/assq-test.scm similarity index 100% rename from tests/scheme/list/assq-test.scm rename to tests/scheme/base/assq-test.scm diff --git a/tests/scheme/list/assv-test.scm b/tests/scheme/base/assv-test.scm similarity index 100% rename from tests/scheme/list/assv-test.scm rename to tests/scheme/base/assv-test.scm diff --git a/tests/scheme/list/caar-test.scm b/tests/scheme/base/caar-test.scm similarity index 100% rename from tests/scheme/list/caar-test.scm rename to tests/scheme/base/caar-test.scm diff --git a/tests/scheme/list/cadr-test.scm b/tests/scheme/base/cadr-test.scm similarity index 100% rename from tests/scheme/list/cadr-test.scm rename to tests/scheme/base/cadr-test.scm diff --git a/tests/scheme/list/car-test.scm b/tests/scheme/base/car-test.scm similarity index 100% rename from tests/scheme/list/car-test.scm rename to tests/scheme/base/car-test.scm diff --git a/tests/scheme/list/cddr-test.scm b/tests/scheme/base/cddr-test.scm similarity index 100% rename from tests/scheme/list/cddr-test.scm rename to tests/scheme/base/cddr-test.scm diff --git a/tests/scheme/list/cdr-test.scm b/tests/scheme/base/cdr-test.scm similarity index 100% rename from tests/scheme/list/cdr-test.scm rename to tests/scheme/base/cdr-test.scm diff --git a/tests/scheme/list/length-test.scm b/tests/scheme/base/length-test.scm similarity index 100% rename from tests/scheme/list/length-test.scm rename to tests/scheme/base/length-test.scm diff --git a/tests/scheme/list/list-copy-test.scm b/tests/scheme/base/list-copy-test.scm similarity index 100% rename from tests/scheme/list/list-copy-test.scm rename to tests/scheme/base/list-copy-test.scm diff --git a/tests/scheme/list/list-p-test.scm b/tests/scheme/base/list-p-test.scm similarity index 100% rename from tests/scheme/list/list-p-test.scm rename to tests/scheme/base/list-p-test.scm diff --git a/tests/scheme/list/list-ref-test.scm b/tests/scheme/base/list-ref-test.scm similarity index 100% rename from tests/scheme/list/list-ref-test.scm rename to tests/scheme/base/list-ref-test.scm diff --git a/tests/scheme/list/list-set-bang-test.scm b/tests/scheme/base/list-set-bang-test.scm similarity index 100% rename from tests/scheme/list/list-set-bang-test.scm rename to tests/scheme/base/list-set-bang-test.scm diff --git a/tests/scheme/list/list-tail-test.scm b/tests/scheme/base/list-tail-test.scm similarity index 100% rename from tests/scheme/list/list-tail-test.scm rename to tests/scheme/base/list-tail-test.scm diff --git a/tests/scheme/list/list-test.scm b/tests/scheme/base/list-test.scm similarity index 100% rename from tests/scheme/list/list-test.scm rename to tests/scheme/base/list-test.scm diff --git a/tests/scheme/list/make-list-test.scm b/tests/scheme/base/make-list-test.scm similarity index 100% rename from tests/scheme/list/make-list-test.scm rename to tests/scheme/base/make-list-test.scm diff --git a/tests/scheme/list/member-test.scm b/tests/scheme/base/member-test.scm similarity index 100% rename from tests/scheme/list/member-test.scm rename to tests/scheme/base/member-test.scm diff --git a/tests/scheme/list/memq-test.scm b/tests/scheme/base/memq-test.scm similarity index 100% rename from tests/scheme/list/memq-test.scm rename to tests/scheme/base/memq-test.scm diff --git a/tests/scheme/list/memv-test.scm b/tests/scheme/base/memv-test.scm similarity index 100% rename from tests/scheme/list/memv-test.scm rename to tests/scheme/base/memv-test.scm diff --git a/tests/scheme/list/null-p-test.scm b/tests/scheme/base/null-p-test.scm similarity index 100% rename from tests/scheme/list/null-p-test.scm rename to tests/scheme/base/null-p-test.scm diff --git a/tests/scheme/list/pair-p-test.scm b/tests/scheme/base/pair-p-test.scm similarity index 100% rename from tests/scheme/list/pair-p-test.scm rename to tests/scheme/base/pair-p-test.scm diff --git a/tests/scheme/list/reverse-test.scm b/tests/scheme/base/reverse-test.scm similarity index 100% rename from tests/scheme/list/reverse-test.scm rename to tests/scheme/base/reverse-test.scm diff --git a/tests/scheme/list/set-car-bang-test.scm b/tests/scheme/base/set-car-bang-test.scm similarity index 100% rename from tests/scheme/list/set-car-bang-test.scm rename to tests/scheme/base/set-car-bang-test.scm diff --git a/tests/scheme/list/set-cdr-bang-test.scm b/tests/scheme/base/set-cdr-bang-test.scm similarity index 100% rename from tests/scheme/list/set-cdr-bang-test.scm rename to tests/scheme/base/set-cdr-bang-test.scm diff --git a/tests/scheme/list-test.scm b/tests/scheme/list-test.scm deleted file mode 100644 index bceaa30a..00000000 --- a/tests/scheme/list-test.scm +++ /dev/null @@ -1,67 +0,0 @@ -;; (scheme base) 列表函数分类索引 -;; -;; scheme base 提供 Scheme 标准中的列表操作函数, -;; 包括序对操作、列表构造、选择器、修改器等基础功能。 - -;; ==== 常见用法示例 ==== -(import (scheme base)) - -;; 示例1:创建和操作列表 -;; (cons 1 '(2 3)) ; => (1 2 3) -;; (car '(1 2 3)) ; => 1 -;; (cdr '(1 2 3)) ; => (2 3) - -;; 示例2:列表查询 -;; (null? '()) ; => #t -;; (list? '(1 2 3)) ; => #t -;; (length '(a b c)) ; => 3 - -;; 示例3:列表组合和拆分 -;; (append '(1 2) '(3 4)) ; => (1 2 3 4) -;; (reverse '(1 2 3)) ; => (3 2 1) - -;; ==== 如何查看函数的文档和用例 ==== -;; bin/gf doc scheme/base "pair?" -;; bin/gf doc scheme/base "car" - -;; ==== 函数分类索引 ==== - -;; 一、序对操作 -;; pair? - 判断是否为序对 -;; car - 获取序对的 car 部分 -;; cdr - 获取序对的 cdr 部分 -;; set-car! - 修改序对的 car 部分 -;; set-cdr! - 修改序对的 cdr 部分 -;; caar - 获取 car 的 car -;; cadr - 获取 car 的 cdr -;; cddr - 获取 cdr 的 cdr - -;; 二、列表判断 -;; null? - 判断是否为空列表 -;; list? - 判断是否为列表 - -;; 三、列表构造 -;; make-list - 创建指定长度的列表 -;; list - 创建列表 -;; cons - 构造序对 - -;; 四、列表查询 -;; length - 获取列表长度 -;; append - 连接多个列表 -;; reverse - 反转列表 - -;; 五、列表选择 -;; list-tail - 获取列表尾部 -;; list-ref - 获取指定索引的元素 -;; list-set! - 修改指定索引的元素 -;; memq - 按 eq? 查找元素 -;; memv - 按 eqv? 查找元素 -;; member - 按 equal? 查找元素 - -;; 六、关联列表 -;; assq - 按 eq? 在关联列表中查找 -;; assv - 按 eqv? 在关联列表中查找 -;; assoc - 按 equal? 在关联列表中查找 - -;; 七、列表复制 -;; list-copy - 复制列表