help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to fix this G-exp?


From: Csepp
Subject: Re: how to fix this G-exp?
Date: Sat, 24 Sep 2022 20:40:24 +0200

zimoun <zimon.toutoune@gmail.com> writes:

> Hi,
>
> I am missing something and I do not find my way, so maybe someone could
> explain me what I am doing wrong.

I'll try. UwU

> Let start with this example.
>
> (use-modules (srfi srfi-1)
>              (ice-9 match)
>              (guix packages)
>              (gnu packages))
>
> (define (package+propagated-inputs package)
>   (match (package-transitive-propagated-inputs package)
>     (((labels packages) ...)
>      (cons package packages))))
>
>
> (define (something)
>   42)
>
So this will take one of these values with the later edits you talk
about:
42
'(42)
'(42 42)
And this is used...
>
> (define (an-example)
>
>   (define build
>     (with-extensions (package+propagated-inputs
>                       (specification->package "guile-json"))
>       (with-imported-modules '((guix build utils)
>                                (json))
>         #~(begin
>             (use-modules (guix build utils)
>                          (json))
>
>             (define that
>               #+(something))
...here!  The later use of "that" is not important.
>...
When you spliced (not sliced) it, you got:
```
(define that (42))
```
As you can see, that is an unqouted list.  The fix should be pretty
simple: just add an extra quote.  Haven't tested it, but one of these
should work:
```
(define (something) ''(42))
;; or
(quote #+(something))
```

I'm pretty sure I've run into this in a service definition and used the
latter.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]