[I am completely new to both Scheme and racket, so if my questions are easily answered by reading some documentation, please just point me at it.]
Looking at traversal of a file tree led me to in-directory. The problem is that as soon as it hits a directory it cannot search (permissions, whatever...) it drops out with an exception. For example: (for ([e (in-directory "/Users/lucas")]) (printf "~a\n" e)) /Users/lucas/.CFUserTextEncoding /Users/lucas/.DS_Store /Users/lucas/Desktop directory-list: could not open "/Users/lucas/Desktop" (Permission denied; errno=13) I'd like to be able to catch the error, change the output, and continue pulling names: (for ([e (safe-in-directory "/Users/lucas")]) (printf "~a\n" e)) /Users/lucas/.CFUserTextEncoding /Users/lucas/.DS_Store /Users/lucas/Desktop[permission denied] /Users/lucas/morefiles ... ... How is in-directory meant to be used, so that it re-starts after an error? I can catch the error by wrapping the code in with-handlers, but I can't see ahow to re-start after the catch. Or is there a different and preferred way of approaching re-starts in this sort of situation? In general, what is idiomatic for catching exceptions, re-trying after an exception, running finalise code? Is there an equivalent to Clisp restarts? To be clear, I'm not really interested in alternative methods of traversing the file tree - I am interested in making in-directory useful, and understanding the exception/restart model in racket. Many thanks Peter _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users