Subject: Re: [bug#54293] [PATCH v2] home: Add home-git-service-type.

From: Maxime Devos <[email-masked]>
Date: Sat, 12 Mar 2022 11:24:52 +0100

[email-masked] schreef op za 12-03-2022 om 10:22 [+0800]:
> +         (merge-options (lambda (options) ;merge options by section
> +                          (fold
> +                           (lambda (e prev)
> +                             (match e
> +                               ((section variables ..1)
> +                                (begin
> +                                  (let ((v (assv-ref prev section)))
> +                                   (assv-set! prev section
> +                                              (if v (append v variables)
> +                                                  variables)))))))
> +                           '() options))))

Seems rather imperative.  Can this be avoided, e.g. using vhashes?
Excerpt from the manual:

> 18.5.1 Programming Paradigm
> ---------------------------
>
> Scheme code in Guix is written in a purely functional style.  One
> exception is code that involves input/output, and procedures that
> implement low-level concepts, such as the ‘memoize’ procedure.

Greetings,
Maxime.