Le dimanche 17 septembre 2023 à 20:59 -0400, Maxim Cournoyer a écrit :
It's mentioned in the Guile Reference manual; see info "(guile) Pattern
Matching":
So your example is just binding the string "Printer" to the variable "..1":
since "..1" doesn't have any special meaning, it's just a pattern variable.
Unless I misread the doc, it should '..1' is a special case '...', which
means "one or more" instead of "zero or more".
OK, my bad, I didn't know that. You're right that "..1" is mistreated here, it should be compiled as "one or more repetitions" but instead gets compiled as a pattern variable. That's a bug, indeed — I believe the expected behavior is that "..1" behaves like "...", namely being allowed in the middle of a list.