Re: Quick question about SRFI-170 directory-files
Lassi Kortela 29 Jul 2019 18:15 UTC
> In Scheme we could go even further and leave out the user-supplied 'n'
> argument. The implementation could choose how many entries it returns at
> one time, according to whatever is most convenient for FFI and GC.
OK so a version of Chibi's directory-fold...
(directory-fold dir kons knil)
... that gets lists instead of individual names.
Get all files in the directory:
(directory-fold dir append '())
Filter them:
(import (srfi 1))
(directory-fold
dir
(lambda (new-names so-far)
(append so-far (filter not-a-dotfile? new-names)))
'())
Gather into a hash table:
(import (srfi 69))
(directory-fold
dir
(lambda (new-names ht)
(for-each (lambda (name)
(hash-table-set! ht name (get-some-info dir name)))
new-names)
ht)
(make-hash-table))
Get only some files:
(directory-fold
dir
(lambda (new-names so-far)
(if (>= (length so-far) 10)
so-far
(append so-far new-names)))
'())
Only count the files:
(directory-fold
dir
(lambda (new-names count) (+ count (length new-names)))
0)
What do you think?