From 3fb1532bd63b7e55213705c73c501357ad4e5053 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 20 May 2014 12:29:02 -0700 Subject: [PATCH] io.directories.search: add quot stack effects, simplify find-all-files. --- basis/io/directories/search/search.factor | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/basis/io/directories/search/search.factor b/basis/io/directories/search/search.factor index 5462795448..22442fe337 100644 --- a/basis/io/directories/search/search.factor +++ b/basis/io/directories/search/search.factor @@ -63,25 +63,24 @@ TUPLE: directory-iterator PRIVATE> -: each-file ( path bfs? quot -- ) +: each-file ( path bfs? quot: ( ... name -- ... ) -- ) setup-traversal iterate-directory drop ; inline -: each-directory-entry ( path bfs? quot -- ) +: each-directory-entry ( path bfs? quot: ( ... entry -- ... ) -- ) setup-traversal iterate-directory-entries drop ; inline : recursive-directory-files ( path bfs? -- paths ) - [ ] collector [ each-file ] dip ; inline + [ ] collector [ each-file ] dip ; : recursive-directory-entries ( path bfs? -- directory-entries ) - [ ] collector [ each-directory-entry ] dip ; inline + [ ] collector [ each-directory-entry ] dip ; -: find-file ( path bfs? quot -- path/f ) +: find-file ( path bfs? quot: ( ... name -- ... ? ) -- path/f ) [ ] dip [ keep and ] curry iterate-directory ; inline -: find-all-files ( path quot -- paths/f ) - [ f ] dip selector - [ [ f ] compose iterate-directory drop ] dip ; inline +: find-all-files ( path quot: ( ... name -- ... ? ) -- paths ) + f swap selector [ each-file ] dip ; inline ERROR: file-not-found path bfs? quot ;