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