in-directory: sort entries
Make `in-directory` more like `directory-list` by sorting directory content.
This commit is contained in:
parent
903afe2240
commit
cfb2a7aa32
|
@ -443,6 +443,10 @@ each element in the sequence.
|
||||||
content of a directory, use the result of @racket[directory-list] as
|
content of a directory, use the result of @racket[directory-list] as
|
||||||
a sequence.
|
a sequence.
|
||||||
|
|
||||||
|
The immediate content of each directory is reported as sorted by
|
||||||
|
@racket[path<?], and the content of a subdirectory is reported
|
||||||
|
before subsequent paths within the directory.
|
||||||
|
|
||||||
@examples[
|
@examples[
|
||||||
(code:comment @#,t{Given a directory tree:})
|
(code:comment @#,t{Given a directory tree:})
|
||||||
(code:comment @#,t{})
|
(code:comment @#,t{})
|
||||||
|
@ -485,7 +489,8 @@ each element in the sequence.
|
||||||
"/example/c"))])
|
"/example/c"))])
|
||||||
(printf "~a\n" p)))]
|
(printf "~a\n" p)))]
|
||||||
|
|
||||||
@history[#:changed "6.0.0.1" @elem{Added @racket[use-dir?] argument.}]}
|
@history[#:changed "6.0.0.1" @elem{Added @racket[use-dir?] argument.}
|
||||||
|
#:changed "6.6.0.4" @elem{Added guarantee of sorted results.}]}
|
||||||
|
|
||||||
|
|
||||||
@defproc*[([(in-producer [producer procedure?])
|
@defproc*[([(in-producer [producer procedure?])
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
"letstx-scheme.rkt"
|
"letstx-scheme.rkt"
|
||||||
"member.rkt"
|
"member.rkt"
|
||||||
"reverse.rkt"
|
"reverse.rkt"
|
||||||
|
"sort.rkt"
|
||||||
'#%unsafe
|
'#%unsafe
|
||||||
'#%flfxnum
|
'#%flfxnum
|
||||||
(for-syntax '#%kernel
|
(for-syntax '#%kernel
|
||||||
|
@ -2076,7 +2077,7 @@
|
||||||
eof)]])))
|
eof)]])))
|
||||||
|
|
||||||
(define (dir-list full-d d acc)
|
(define (dir-list full-d d acc)
|
||||||
(for/fold ([acc acc]) ([f (in-list (reverse (directory-list full-d)))])
|
(for/fold ([acc acc]) ([f (in-list (reverse (sort (directory-list full-d) path<?)))])
|
||||||
(cons (build-path d f) acc)))
|
(cons (build-path d f) acc)))
|
||||||
|
|
||||||
(define (next-body l d init-dir use-dir?)
|
(define (next-body l d init-dir use-dir?)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user