A note from a relatively new person.

On 3/23/26 17:31, bjc via Development of GNU Guix and the GNU System distribution. wrote:
you've made it /look/ like i can just use a variable “inputs”, but when
it comes to recreating it myself for other fields, i find i cannot. i
have been bamboozled! turns out the word “inputs” is special, and i had
no way of knowing that.

How do you know what the other 'identifiers' in the scheme code mean?

In the beginning it took me quite some time to learn how to 'recognize' the difference between "(special) syntax", a "normal procedure call", and a "field", since they are all '(name-of-thing argument-of-thing)'. It indeed feels like you describe, bamboozling.

I was like "'define-public' is a procedure that takes an (undefined?) name-thing as first argument, then the result of the 'package' procedure as the second argument, and 'package' has as first argument the result from the 'name' procedure, etc..".

It was quickly clear that this was not what was happening, but it is definitely already

> no longer obvious, but esoteric: it requires obscure domain knowledge.

Scheme feels very 'magical' in that regard. I still don't know how to generalize my knowledge.

Adding to it fields that can be thunked or not, feels like a small step. The (related) gexps are much harder to grasp.

Hugo


Reply via email to