From 5931a79a5a915035e01b9fb22a3edfde7895e424 Mon Sep 17 00:00:00 2001 From: Masaya Tojo Date: Sun, 16 Jun 2024 01:58:48 +0900 Subject: Add list implementations --- algebraic-structures.private.list.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 algebraic-structures.private.list.scm (limited to 'algebraic-structures.private.list.scm') diff --git a/algebraic-structures.private.list.scm b/algebraic-structures.private.list.scm new file mode 100644 index 0000000..4710b40 --- /dev/null +++ b/algebraic-structures.private.list.scm @@ -0,0 +1,19 @@ +(module (algebraic-structures private list) (<> unit fold reduce map1) + (import scheme + (rename (only (srfi 1) fold reduce) + (fold srfi:fold) + (reduce srfi:reduce)) + (only (chicken base) assert)) + + (define <> append) + + (define unit '()) + + (define fold srfi:fold) + + (define (reduce f xs) + (assert (not (null? xs))) + (srfi:reduce f #f xs)) + + (define (map1 f xs) + (map f xs))) -- cgit v1.2.3