GNU bug report logs - #39599
[PATCH 0/2] New build system: copy-build-system

Previous Next

Package: guix-patches;

Reported by: Pierre Neidhardt <mail <at> ambrevar.xyz>

Date: Fri, 14 Feb 2020 12:52:02 UTC

Severity: normal

Tags: patch

Done: Pierre Neidhardt <mail <at> ambrevar.xyz>

Bug is archived. No further changes may be made.

Full log


Message #50 received at 39599 <at> debbugs.gnu.org (full text, mbox):

From: Ricardo Wurmus <rekado <at> elephly.net>
To: Pierre Neidhardt <mail <at> ambrevar.xyz>
Cc: 39599 <at> debbugs.gnu.org
Subject: Re: [bug#39599] [PATCH 1/4] build-system: Add copy-build-system.
Date: Thu, 20 Feb 2020 10:47:10 +0100
Pierre Neidhardt <mail <at> ambrevar.xyz> writes:

> +  (define* (make-file-predicate matches matches-regexp #:optional (default-value #t))
> +    (if (or matches matches-regexp)
> +        (lambda (file)
> +          (any (lambda (pred) (pred file))
> +               (append
> +                (map (lambda (str)
> +                       (lambda (f) (string-suffix? str f)))
> +                     (or matches '()))
> +                (map (lambda (regexp)
> +                       (lambda (f) (regexp-exec (make-regexp regexp) f)))
> +                     (or matches-regexp '())))))
> +        (const default-value)))

This looks too complicated.

I think this is clearer:

--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---

Also, as Mathieu wrote, please don’t use SET!.

-- 
Ricardo




This bug report was last modified 5 years and 147 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.