Ricardo Wurmus writes: > --8<---------------cut here---------------start------------->8--- > (define* (make-file-predicate suffixes matches-regexp #:optional (default-value #t)) > (if (or suffixes matches-regexp) > (let* ((suffixes (or suffixes '())) > (regexps (map make-regexp (or matches-regexp '()))) > (predicates (append > (map (lambda (str) > (cut string-suffix? str <>)) > suffixes) > (map (lambda (regexp) > (cut regexp-exec regexp <>)) > regexps)))) > (lambda (file) > (any (cut <> file) predicates))) > (const default-value))) > --8<---------------cut here---------------end--------------->8--- Good suggestion, thanks! The logic of this function is a bit convoluted in my opinion, but I can't think of something simpler and just as short. But since it's a local function, I guess it's not a big deal. > Also, as Mathieu wrote, please don’t use SET!. No problem, but I don't recall seeing this message. Where did Mathieu write this? -- Pierre Neidhardt https://ambrevar.xyz/