From 2f1589579eb707006afc086d301d04ab43992686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Wed, 5 Jul 2023 21:58:34 +0200 Subject: [PATCH] Duck util-list. --- doc/d-utils.md | 18 ++++++++++++++++++ doc/utils.md | 15 --------------- src/Makefile | 6 +++--- src/gendoc.scm | 3 ++- src/util-list.scm | 13 +++++++++++-- 5 files changed, 34 insertions(+), 21 deletions(-) diff --git a/doc/d-utils.md b/doc/d-utils.md index 3b7367e..3ae3cd9 100644 --- a/doc/d-utils.md +++ b/doc/d-utils.md @@ -256,3 +256,21 @@ When the ```line``` contains whitespace character(s), it returns a pair consisting of symbol created by interning the string of non-whitespace characters before the first whitespace character and the string with the rest of the line. + +## util-list [module] + + (import util-list) + +This module implements basic list functionality which is common in +most scheme implementations. + +### filter [procedure] + + (filter pred? + lst) + +* ```pred?``` - procedure accepting any value and returning #t or #f +* ```lst``` - list to be filtered + +Returns a list containing only elements matching given ```pred?``` +predicate. diff --git a/doc/utils.md b/doc/utils.md index bf6074c..7218edc 100644 --- a/doc/utils.md +++ b/doc/utils.md @@ -139,21 +139,6 @@ Converts given number to a string with two-digit fractional part. Should the fractional part be 0, it is replaced with the string "--". -### List - - (import util-list) - -This module implements basic list functionality which is common in -most scheme implementations. - - (filter pred? lst) - -* ```pred?``` - procedure accepting any value and returning #t or #f -* ```lst``` - list to be filtered - -Returns a list containing only elements matching given ```pred?``` -predicate. - ### Mail (import util-mail) diff --git a/src/Makefile b/src/Makefile index 99501e2..abcf197 100644 --- a/src/Makefile +++ b/src/Makefile @@ -60,11 +60,11 @@ HACKERBASE-OBJS=hackerbase.o testing.o listing.o cal-month.o \ GENDOC-SOURCES=gendoc.scm duck-extract.import.scm \ util-time.import.scm util-csv.import.scm util-git.import.scm \ util-io.import.scm util-stdout.import.scm \ - util-parser.import.scm + util-parser.import.scm util-list.import.scm GENDOC-OBJS=gendoc.o duck-extract.o util-time.o util-csv.o util-io.o \ progress.o testing.o util-proc.o util-git.o util-io.o \ - util-stdout.o util-parser.o + util-stdout.o util-parser.o util-list.o .PHONY: imports imports: $(HACKERBASE-DEPS) @@ -478,7 +478,7 @@ BOX-DRAWING-SOURCES=box-drawing.scm util-utf8.import.scm \ box-drawing.o: box-drawing.import.scm box-drawing.import.scm: $(BOX-DRAWING-SOURCES) -UTIL-LIST-SOURCES=util-list.scm testing.import.scm +UTIL-LIST-SOURCES=util-list.scm testing.import.scm duck.import.scm util-list.o: util-list.import.scm util-list.import.scm: $(UTIL-LIST-SOURCES) diff --git a/src/gendoc.scm b/src/gendoc.scm index 7515dde..ec1e79a 100644 --- a/src/gendoc.scm +++ b/src/gendoc.scm @@ -25,4 +25,5 @@ util-git util-io util-stdout - util-parser) + util-parser + util-list) diff --git a/src/util-list.scm b/src/util-list.scm index e6c2393..1090e6e 100644 --- a/src/util-list.scm +++ b/src/util-list.scm @@ -25,8 +25,12 @@ (declare (unit util-list)) -(module +(import duck) + +(module* util-list + #:doc ("This module implements basic list functionality which is common in +most scheme implementations.") ( filter util-list-tests! @@ -39,7 +43,12 @@ testing) ;; Returns a list with elements matching pred? predicate. - (define (filter pred? lst) + (define/doc (filter pred? lst) + ("* ```pred?``` - procedure accepting any value and returning #t or #f +* ```lst``` - list to be filtered + +Returns a list containing only elements matching given ```pred?``` +predicate.") (let loop ((lst lst) (res '())) (if (null? lst)