Remove util-list, use srfi-1.
This commit is contained in:
parent
b2070d3b2e
commit
fc099d027f
16 changed files with 41 additions and 121 deletions
67
src/Makefile
67
src/Makefile
|
@ -48,11 +48,10 @@ HACKERBASE-OBJS=hackerbase.o testing.o listing.o cal-month.o \
|
||||||
util-csv.o bank-account.o bank-fio.o members-payments.o \
|
util-csv.o bank-account.o bank-fio.o members-payments.o \
|
||||||
brmember-parser.o export-wiki-compat.o environment.o \
|
brmember-parser.o export-wiki-compat.o environment.o \
|
||||||
mailman.o util-set-list.o util-time.o util-tag.o util-io.o \
|
mailman.o util-set-list.o util-time.o util-tag.o util-io.o \
|
||||||
util-string.o util-io.o util-list.o util-parser.o texts.o \
|
util-string.o util-io.o util-parser.o texts.o tests.o \
|
||||||
tests.o util-proc.o util-mail.o notifications.o \
|
util-proc.o util-mail.o notifications.o util-format.o \
|
||||||
util-format.o brmember-format.o logging.o specification.o \
|
brmember-format.o logging.o specification.o util-git.o \
|
||||||
util-git.o cal-day.o util-stdout.o cal-format.o \
|
cal-day.o util-stdout.o cal-format.o util-dict-bst.o
|
||||||
util-dict-bst.o
|
|
||||||
|
|
||||||
.PHONY: imports
|
.PHONY: imports
|
||||||
imports: $(HACKERBASE-DEPS)
|
imports: $(HACKERBASE-DEPS)
|
||||||
|
@ -115,13 +114,13 @@ UTIL-DICT-LIST-SOURCES=util-dict-list.scm testing.import.scm \
|
||||||
util-dict-list.o: util-dict-list.import.scm
|
util-dict-list.o: util-dict-list.import.scm
|
||||||
util-dict-list.import.scm: $(UTIL-DICT-LIST-SOURCES)
|
util-dict-list.import.scm: $(UTIL-DICT-LIST-SOURCES)
|
||||||
|
|
||||||
ANSI-SOURCES=ansi.scm testing.import.scm util-list.import.scm
|
ANSI-SOURCES=ansi.scm testing.import.scm
|
||||||
|
|
||||||
ansi.o: ansi.import.scm
|
ansi.o: ansi.import.scm
|
||||||
ansi.import.scm: $(ANSI-SOURCES)
|
ansi.import.scm: $(ANSI-SOURCES)
|
||||||
|
|
||||||
COMMAND-LINE-SOURCES=command-line.scm testing.import.scm \
|
COMMAND-LINE-SOURCES=command-line.scm testing.import.scm \
|
||||||
util-list.import.scm util-proc.import.scm
|
util-proc.import.scm
|
||||||
|
|
||||||
command-line.o: command-line.import.scm
|
command-line.o: command-line.import.scm
|
||||||
command-line.import.scm: $(COMMAND-LINE-SOURCES)
|
command-line.import.scm: $(COMMAND-LINE-SOURCES)
|
||||||
|
@ -130,19 +129,13 @@ MBASE-SOURCES=mbase.scm testing.import.scm util-dict-list.import.scm \
|
||||||
primes.import.scm brmember.import.scm ansi.import.scm \
|
primes.import.scm brmember.import.scm ansi.import.scm \
|
||||||
cal-period.import.scm cal-month.import.scm \
|
cal-period.import.scm cal-month.import.scm \
|
||||||
configuration.import.scm progress.import.scm \
|
configuration.import.scm progress.import.scm \
|
||||||
table.import.scm mbase-dir.import.scm util-list.import.scm \
|
table.import.scm mbase-dir.import.scm util-tag.import.scm \
|
||||||
util-tag.import.scm racket-kwargs.import.scm \
|
racket-kwargs.import.scm util-dict-bst.import.scm
|
||||||
util-dict-bst.import.scm
|
|
||||||
|
|
||||||
mbase.o: mbase.import.scm
|
mbase.o: mbase.import.scm
|
||||||
mbase.import.scm: $(MBASE-SOURCES)
|
mbase.import.scm: $(MBASE-SOURCES)
|
||||||
|
|
||||||
UTIL-LIST-SOURCES=util-list.scm testing.import.scm
|
PRIMES-SOURCES=primes.scm testing.import.scm
|
||||||
|
|
||||||
util-list.o: util-list.import.scm
|
|
||||||
util-list.import.scm: $(UTIL-LIST-SOURCES)
|
|
||||||
|
|
||||||
PRIMES-SOURCES=primes.scm testing.import.scm util-list.import.scm
|
|
||||||
|
|
||||||
primes.o: primes.import.scm
|
primes.o: primes.import.scm
|
||||||
primes.import.scm: $(PRIMES-SOURCES)
|
primes.import.scm: $(PRIMES-SOURCES)
|
||||||
|
@ -150,8 +143,7 @@ primes.import.scm: $(PRIMES-SOURCES)
|
||||||
BRMEMBER-SOURCES=brmember.scm util-dict-list.import.scm \
|
BRMEMBER-SOURCES=brmember.scm util-dict-list.import.scm \
|
||||||
cal-period.import.scm testing.import.scm cal-month.import.scm \
|
cal-period.import.scm testing.import.scm cal-month.import.scm \
|
||||||
configuration.import.scm primes.import.scm \
|
configuration.import.scm primes.import.scm \
|
||||||
bank-account.import.scm util-list.import.scm \
|
bank-account.import.scm util-tag.import.scm
|
||||||
util-tag.import.scm
|
|
||||||
|
|
||||||
brmember.o: brmember.import.scm
|
brmember.o: brmember.import.scm
|
||||||
brmember.import.scm: $(BRMEMBER-SOURCES)
|
brmember.import.scm: $(BRMEMBER-SOURCES)
|
||||||
|
@ -167,8 +159,7 @@ progress.o: progress.import.scm
|
||||||
progress.import.scm: $(PROGRESS-SOURCES)
|
progress.import.scm: $(PROGRESS-SOURCES)
|
||||||
|
|
||||||
TABLE-SOURCES=table.scm ansi.import.scm testing.import.scm \
|
TABLE-SOURCES=table.scm ansi.import.scm testing.import.scm \
|
||||||
util-string.import.scm util-list.import.scm \
|
util-string.import.scm racket-kwargs.import.scm
|
||||||
racket-kwargs.import.scm
|
|
||||||
|
|
||||||
table.o: table.import.scm
|
table.o: table.import.scm
|
||||||
table.import.scm: $(TABLE-SOURCES)
|
table.import.scm: $(TABLE-SOURCES)
|
||||||
|
@ -179,10 +170,10 @@ EXPORT-CARDS-SOURCES=export-cards.scm util-dict-list.import.scm \
|
||||||
export-cards.o: export-cards.import.scm
|
export-cards.o: export-cards.import.scm
|
||||||
export-cards.import.scm: $(EXPORT-CARDS-SOURCES)
|
export-cards.import.scm: $(EXPORT-CARDS-SOURCES)
|
||||||
|
|
||||||
BRMEMBER-PARSER-SOURCES=brmember-parser.scm brmember.import.scm \
|
BRMEMBER-PARSER-SOURCES=brmember-parser.scm brmember.import.scm \
|
||||||
testing.import.scm util-dict-list.import.scm cal-month.import.scm \
|
testing.import.scm util-dict-list.import.scm \
|
||||||
cal-period.import.scm configuration.import.scm \
|
cal-month.import.scm cal-period.import.scm \
|
||||||
util-string.import.scm util-list.import.scm \
|
configuration.import.scm util-string.import.scm \
|
||||||
util-parser.import.scm cal-day.import.scm
|
util-parser.import.scm cal-day.import.scm
|
||||||
|
|
||||||
brmember-parser.o: brmember-parser.import.scm
|
brmember-parser.o: brmember-parser.import.scm
|
||||||
|
@ -193,9 +184,9 @@ MEMBERS-PRINT-SOURCES=members-print.scm util-dict-list.import.scm \
|
||||||
listing.import.scm ansi.import.scm cal-period.import.scm \
|
listing.import.scm ansi.import.scm cal-period.import.scm \
|
||||||
primes.import.scm mbase.import.scm configuration.import.scm \
|
primes.import.scm mbase.import.scm configuration.import.scm \
|
||||||
bank-account.import.scm members-fees.import.scm \
|
bank-account.import.scm members-fees.import.scm \
|
||||||
members-payments.import.scm util-list.import.scm \
|
members-payments.import.scm brmember-format.import.scm \
|
||||||
brmember-format.import.scm specification.import.scm \
|
specification.import.scm cal-format.import.scm \
|
||||||
cal-format.import.scm util-git.import.scm
|
util-git.import.scm
|
||||||
|
|
||||||
members-print.o: members-print.import.scm
|
members-print.o: members-print.import.scm
|
||||||
members-print.import.scm: $(MEMBERS-PRINT-SOURCES)
|
members-print.import.scm: $(MEMBERS-PRINT-SOURCES)
|
||||||
|
@ -203,14 +194,13 @@ members-print.import.scm: $(MEMBERS-PRINT-SOURCES)
|
||||||
MEMBERS-FEES-SOURCES=members-fees.scm configuration.import.scm \
|
MEMBERS-FEES-SOURCES=members-fees.scm configuration.import.scm \
|
||||||
brmember.import.scm cal-month.import.scm table.import.scm \
|
brmember.import.scm cal-month.import.scm table.import.scm \
|
||||||
mbase.import.scm specification.import.scm \
|
mbase.import.scm specification.import.scm \
|
||||||
util-list.import.scm
|
|
||||||
|
|
||||||
members-fees.o: members-fees.import.scm
|
members-fees.o: members-fees.import.scm
|
||||||
members-fees.import.scm: $(MEMBERS-FEES-SOURCES)
|
members-fees.import.scm: $(MEMBERS-FEES-SOURCES)
|
||||||
|
|
||||||
MBASE-DIR-SOURCES=mbase-dir.scm testing.import.scm \
|
MBASE-DIR-SOURCES=mbase-dir.scm testing.import.scm \
|
||||||
util-dict-list.import.scm brmember.import.scm \
|
util-dict-list.import.scm brmember.import.scm \
|
||||||
brmember-parser.import.scm util-list.import.scm
|
brmember-parser.import.scm
|
||||||
|
|
||||||
mbase-dir.o: mbase-dir.import.scm
|
mbase-dir.o: mbase-dir.import.scm
|
||||||
mbase-dir.import.scm: $(MBASE-DIR-SOURCES)
|
mbase-dir.import.scm: $(MBASE-DIR-SOURCES)
|
||||||
|
@ -235,7 +225,7 @@ bank-fio.import.scm: $(BANK-FIO-SOURCES)
|
||||||
MEMBERS-PAYMENTS-SOURCES=members-payments.scm bank-account.import.scm \
|
MEMBERS-PAYMENTS-SOURCES=members-payments.scm bank-account.import.scm \
|
||||||
util-dict-list.import.scm members-fees.import.scm \
|
util-dict-list.import.scm members-fees.import.scm \
|
||||||
cal-period.import.scm configuration.import.scm \
|
cal-period.import.scm configuration.import.scm \
|
||||||
progress.import.scm bank-fio.import.scm util-list.import.scm \
|
progress.import.scm bank-fio.import.scm \
|
||||||
specification.import.scm
|
specification.import.scm
|
||||||
|
|
||||||
members-payments.o: members-payments.import.scm
|
members-payments.o: members-payments.import.scm
|
||||||
|
@ -243,8 +233,7 @@ members-payments.import.scm: $(MEMBERS-PAYMENTS-SOURCES)
|
||||||
|
|
||||||
EXPORT-WIKI-COMPAT-SOURCES=export-wiki-compat.scm brmember.import.scm \
|
EXPORT-WIKI-COMPAT-SOURCES=export-wiki-compat.scm brmember.import.scm \
|
||||||
configuration.import.scm members-payments.import.scm \
|
configuration.import.scm members-payments.import.scm \
|
||||||
mbase.import.scm util-git.import.scm util-list.import.scm \
|
mbase.import.scm util-git.import.scm progress.import.scm
|
||||||
progress.import.scm
|
|
||||||
|
|
||||||
export-wiki-compat.o: export-wiki-compat.import.scm
|
export-wiki-compat.o: export-wiki-compat.import.scm
|
||||||
export-wiki-compat.import.scm: $(EXPORT-WIKI-COMPAT-SOURCES)
|
export-wiki-compat.import.scm: $(EXPORT-WIKI-COMPAT-SOURCES)
|
||||||
|
@ -256,7 +245,6 @@ environment.import.scm: $(ENVIRONMENT-SOURCES)
|
||||||
|
|
||||||
MAILMAN-SOURCES=mailman.scm progress.import.scm \
|
MAILMAN-SOURCES=mailman.scm progress.import.scm \
|
||||||
util-set-list.import.scm util-io.import.scm \
|
util-set-list.import.scm util-io.import.scm \
|
||||||
util-list.import.scm
|
|
||||||
|
|
||||||
mailman.o: mailman.import.scm
|
mailman.o: mailman.import.scm
|
||||||
mailman.import.scm: $(MAILMAN-SOURCES)
|
mailman.import.scm: $(MAILMAN-SOURCES)
|
||||||
|
@ -292,11 +280,6 @@ UTIL-IO-SOURCES=util-io.scm
|
||||||
util-io.o: util-io.import.scm
|
util-io.o: util-io.import.scm
|
||||||
util-io.import.scm: $(UTIL-IO-SOURCES)
|
util-io.import.scm: $(UTIL-IO-SOURCES)
|
||||||
|
|
||||||
UTIL-LIST-SOURCES=util-list.scm testing.import.scm
|
|
||||||
|
|
||||||
util-list.o: util-list.import.scm
|
|
||||||
util-list.import.scm: $(UTIL-LIST-SOURCES)
|
|
||||||
|
|
||||||
UTIL-PARSER-SOURCES=util-parser.scm testing.import.scm
|
UTIL-PARSER-SOURCES=util-parser.scm testing.import.scm
|
||||||
|
|
||||||
util-parser.o: util-parser.import.scm
|
util-parser.o: util-parser.import.scm
|
||||||
|
@ -308,10 +291,10 @@ texts.o: texts.import.scm
|
||||||
texts.import.scm: $(TEXTS-SOURCES)
|
texts.import.scm: $(TEXTS-SOURCES)
|
||||||
|
|
||||||
TESTS-SOURCES=tests.scm listing.import.scm util-dict-list.import.scm \
|
TESTS-SOURCES=tests.scm listing.import.scm util-dict-list.import.scm \
|
||||||
cal-month.import.scm cal-period.import.scm \
|
cal-month.import.scm cal-period.import.scm ansi.import.scm \
|
||||||
util-list.import.scm ansi.import.scm command-line.import.scm \
|
command-line.import.scm mbase-dir.import.scm \
|
||||||
mbase-dir.import.scm primes.import.scm brmember.import.scm \
|
primes.import.scm brmember.import.scm table.import.scm \
|
||||||
table.import.scm util-csv.import.scm util-set-list.import.scm \
|
util-csv.import.scm util-set-list.import.scm \
|
||||||
util-parser.import.scm util-string.import.scm \
|
util-parser.import.scm util-string.import.scm \
|
||||||
cal-day.import.scm util-dict-bst.import.scm
|
cal-day.import.scm util-dict-bst.import.scm
|
||||||
|
|
||||||
|
|
|
@ -50,8 +50,8 @@
|
||||||
(chicken string)
|
(chicken string)
|
||||||
(chicken irregex)
|
(chicken irregex)
|
||||||
(chicken keyword)
|
(chicken keyword)
|
||||||
testing
|
srfi-1
|
||||||
util-list)
|
testing)
|
||||||
|
|
||||||
;; Only basic ANSI colors and bold attribute support.
|
;; Only basic ANSI colors and bold attribute support.
|
||||||
(define colors
|
(define colors
|
||||||
|
|
|
@ -36,12 +36,12 @@
|
||||||
(chicken io)
|
(chicken io)
|
||||||
(chicken irregex)
|
(chicken irregex)
|
||||||
(chicken string)
|
(chicken string)
|
||||||
|
srfi-1
|
||||||
brmember
|
brmember
|
||||||
testing
|
testing
|
||||||
util-dict-list
|
util-dict-list
|
||||||
cal-month
|
cal-month
|
||||||
cal-period
|
cal-period
|
||||||
util-list
|
|
||||||
configuration
|
configuration
|
||||||
util-string
|
util-string
|
||||||
util-parser
|
util-parser
|
||||||
|
|
|
@ -91,13 +91,13 @@
|
||||||
(chicken irregex)
|
(chicken irregex)
|
||||||
(chicken string)
|
(chicken string)
|
||||||
(chicken format)
|
(chicken format)
|
||||||
|
srfi-1
|
||||||
util-dict-list
|
util-dict-list
|
||||||
testing
|
testing
|
||||||
cal-month
|
cal-month
|
||||||
cal-period
|
cal-period
|
||||||
configuration
|
configuration
|
||||||
primes
|
primes
|
||||||
util-list
|
|
||||||
bank-account
|
bank-account
|
||||||
util-tag)
|
util-tag)
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
(chicken base)
|
(chicken base)
|
||||||
(chicken process-context)
|
(chicken process-context)
|
||||||
(chicken format)
|
(chicken format)
|
||||||
util-list
|
srfi-1
|
||||||
testing
|
testing
|
||||||
util-proc)
|
util-proc)
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
(chicken pathname)
|
(chicken pathname)
|
||||||
(chicken file)
|
(chicken file)
|
||||||
(chicken file posix)
|
(chicken file posix)
|
||||||
|
srfi-1
|
||||||
brmember
|
brmember
|
||||||
util-list
|
|
||||||
configuration
|
configuration
|
||||||
members-payments
|
members-payments
|
||||||
mbase
|
mbase
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
(chicken string)
|
(chicken string)
|
||||||
(chicken sort)
|
(chicken sort)
|
||||||
(chicken format)
|
(chicken format)
|
||||||
util-list
|
srfi-1
|
||||||
progress
|
progress
|
||||||
util-set-list
|
util-set-list
|
||||||
util-io)
|
util-io)
|
||||||
|
|
|
@ -40,9 +40,9 @@
|
||||||
(chicken file)
|
(chicken file)
|
||||||
(chicken format)
|
(chicken format)
|
||||||
(chicken irregex)
|
(chicken irregex)
|
||||||
|
srfi-1
|
||||||
testing
|
testing
|
||||||
util-dict-list
|
util-dict-list
|
||||||
util-list
|
|
||||||
brmember
|
brmember
|
||||||
brmember-parser)
|
brmember-parser)
|
||||||
|
|
||||||
|
|
|
@ -65,8 +65,8 @@
|
||||||
(chicken string)
|
(chicken string)
|
||||||
(chicken random)
|
(chicken random)
|
||||||
(chicken sort)
|
(chicken sort)
|
||||||
|
srfi-1
|
||||||
testing
|
testing
|
||||||
util-list
|
|
||||||
util-dict-list
|
util-dict-list
|
||||||
primes
|
primes
|
||||||
brmember
|
brmember
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
(chicken base)
|
(chicken base)
|
||||||
(chicken format)
|
(chicken format)
|
||||||
(chicken sort)
|
(chicken sort)
|
||||||
|
srfi-1
|
||||||
configuration
|
configuration
|
||||||
brmember
|
brmember
|
||||||
cal-month
|
cal-month
|
||||||
|
@ -52,8 +53,7 @@
|
||||||
table
|
table
|
||||||
mbase
|
mbase
|
||||||
cal-period
|
cal-period
|
||||||
specification
|
specification)
|
||||||
util-list)
|
|
||||||
|
|
||||||
;; Returns a matching list of (list regular student)
|
;; Returns a matching list of (list regular student)
|
||||||
(define (lookup-member-fees)
|
(define (lookup-member-fees)
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
(chicken process-context)
|
(chicken process-context)
|
||||||
(chicken pathname)
|
(chicken pathname)
|
||||||
(chicken condition)
|
(chicken condition)
|
||||||
|
srfi-1
|
||||||
bank-account
|
bank-account
|
||||||
brmember
|
brmember
|
||||||
mbase
|
mbase
|
||||||
|
@ -54,7 +55,6 @@
|
||||||
members-fees
|
members-fees
|
||||||
cal-period
|
cal-period
|
||||||
configuration
|
configuration
|
||||||
util-list
|
|
||||||
progress
|
progress
|
||||||
specification)
|
specification)
|
||||||
|
|
||||||
|
|
|
@ -46,10 +46,10 @@
|
||||||
(chicken string)
|
(chicken string)
|
||||||
(chicken sort)
|
(chicken sort)
|
||||||
(chicken format)
|
(chicken format)
|
||||||
|
srfi-1
|
||||||
util-dict-list
|
util-dict-list
|
||||||
brmember
|
brmember
|
||||||
cal-month
|
cal-month
|
||||||
util-list
|
|
||||||
table
|
table
|
||||||
listing
|
listing
|
||||||
ansi
|
ansi
|
||||||
|
|
|
@ -35,8 +35,8 @@
|
||||||
|
|
||||||
(import scheme
|
(import scheme
|
||||||
(chicken base)
|
(chicken base)
|
||||||
testing
|
srfi-1
|
||||||
util-list)
|
testing)
|
||||||
|
|
||||||
;; Checks whether given number is prime by checking the remainder of
|
;; Checks whether given number is prime by checking the remainder of
|
||||||
;; the division by all primes less than square root of the number in
|
;; the division by all primes less than square root of the number in
|
||||||
|
|
|
@ -40,9 +40,9 @@
|
||||||
(chicken format)
|
(chicken format)
|
||||||
(chicken keyword)
|
(chicken keyword)
|
||||||
(chicken irregex)
|
(chicken irregex)
|
||||||
|
srfi-1
|
||||||
ansi
|
ansi
|
||||||
testing
|
testing
|
||||||
util-list
|
|
||||||
util-string
|
util-string
|
||||||
racket-kwargs)
|
racket-kwargs)
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,6 @@
|
||||||
cal-month
|
cal-month
|
||||||
cal-period
|
cal-period
|
||||||
cal-day
|
cal-day
|
||||||
util-list
|
|
||||||
ansi
|
ansi
|
||||||
command-line
|
command-line
|
||||||
mbase-dir
|
mbase-dir
|
||||||
|
@ -61,7 +60,6 @@
|
||||||
(primes-tests!)
|
(primes-tests!)
|
||||||
(brmember-tests!)
|
(brmember-tests!)
|
||||||
(mbase-dir-tests!)
|
(mbase-dir-tests!)
|
||||||
(util-list-tests!)
|
|
||||||
(ansi-tests!)
|
(ansi-tests!)
|
||||||
(command-line-tests!)
|
(command-line-tests!)
|
||||||
(table-tests!)
|
(table-tests!)
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
;;
|
|
||||||
;; util-list.scm
|
|
||||||
;;
|
|
||||||
;; Various utilities so that no external libraries are needed.
|
|
||||||
;;
|
|
||||||
;; ISC License
|
|
||||||
;;
|
|
||||||
;; Copyright 2023 Brmlab, z.s.
|
|
||||||
;; Dominik Pantůček <dominik.pantucek@trustica.cz>
|
|
||||||
;;
|
|
||||||
;; Permission to use, copy, modify, and/or distribute this software
|
|
||||||
;; for any purpose with or without fee is hereby granted, provided
|
|
||||||
;; that the above copyright notice and this permission notice appear
|
|
||||||
;; in all copies.
|
|
||||||
;;
|
|
||||||
;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
|
||||||
;; WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
|
||||||
;; WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
|
||||||
;; AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
|
|
||||||
;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
||||||
;; OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
|
||||||
;; NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
|
||||||
;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
;;
|
|
||||||
|
|
||||||
(declare (unit util-list))
|
|
||||||
|
|
||||||
(module
|
|
||||||
util-list
|
|
||||||
(
|
|
||||||
filter
|
|
||||||
util-list-tests!
|
|
||||||
)
|
|
||||||
|
|
||||||
(import scheme
|
|
||||||
(chicken base)
|
|
||||||
(chicken io)
|
|
||||||
(chicken process)
|
|
||||||
testing)
|
|
||||||
|
|
||||||
;; Returns a list with elements matching pred? predicate.
|
|
||||||
(define (filter pred? lst)
|
|
||||||
(let loop ((lst lst)
|
|
||||||
(res '()))
|
|
||||||
(if (null? lst)
|
|
||||||
(reverse res)
|
|
||||||
(if (pred? (car lst))
|
|
||||||
(loop (cdr lst)
|
|
||||||
(cons (car lst) res))
|
|
||||||
(loop (cdr lst)
|
|
||||||
res)))))
|
|
||||||
|
|
||||||
;; Performs utils module self-tests.
|
|
||||||
(define (util-list-tests!)
|
|
||||||
(run-tests
|
|
||||||
util-list
|
|
||||||
(test-equal? filter (filter odd? '(1 2 3 4)) '(1 3))
|
|
||||||
(test-equal? filter (filter odd? '(2 4)) '())
|
|
||||||
))
|
|
||||||
|
|
||||||
)
|
|
Loading…
Add table
Add a link
Reference in a new issue