GNU bug report logs -
#69052
[PATCH] gnu: guix: Correct home-channels-service-type extension logic.
Previous Next
Reported by: Nicolas Graves <ngraves <at> ngraves.fr>
Date: Sun, 11 Feb 2024 13:42:02 UTC
Severity: normal
Tags: moreinfo, patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hi,
Nicolas Graves <ngraves <at> ngraves.fr> skribis:
> * gnu/home/services/guix.scm
> (extend-channel-list): Add function.
> (home-channels-service-type)[extend]: Use extend-channel-list.
>
> Change-Id: I587207b86216f075a54b6ed0b8fa998896bbed74
[...]
> +(define (channel-name-symbol channel)
> + (match (channel-name channel)
> + ((? symbol? name) name)
> + ((? string? name) (string->symbol name))))
‘channel-name’ always returns a symbol so this procedure can be removed.
> +(define (extend-channel-list default new)
> + "Prepend the channels in NEW by the channels in DEFAULT if their
> +channel-name is not in NEW."
> + (fold-right
> + (lambda (channel acc)
> + (if (member (channel-name channel) (map channel-name-symbol acc))
> + acc
> + (cons channel acc)))
> + new default))
[...]
> + (extend extend-channel-list)
I believe it’s equivalent to:
(define (extend-channel-list initial new)
(delete-duplicates
(append initial new)
(lambda (channel1 channel2)
(eq? (channel-name channel1) (channel-name channel2)))))
… which is somewhat clearer IMO.
Could you send an updated patch?
Ludo’.
This bug report was last modified 320 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.