Le mercredi 16 août 2023 à 10:55 -0400, Mortimer Cladwell a écrit : > I would like to intern and assign a value within a method: > > (define (test-intern) > (let* ((name "abc") >        (data "def") >        (name-symbol (gensym name)) >        ) >   (pretty-print (string-append "symbol: " (symbol->string name-symbol))) >   (set! name-symbol data))) > > scheme@(guile-user)> (test-intern) > "symbol: abc3301" > scheme@(guile-user)> abc3301 > ;;; : warning: possibly unbound variable `abc3301' > ERROR: In procedure module-lookup: Unbound variable: abc3301 Sorry, but it's not clear to me what you mean by "intern and assign a value", and I don't think it will be clear to someone else. Can you be more precise please? I don't understand why you expect "abc3301" to be bound after running (test- intern). That (test-intern) call just creates a symbol, which is interned as a symbol, meaning that creating another (interned) symbol with the same name will reuse the same symbol value. But there is no reason why it shoud be bound to a variable. Symbol interning just applies to symbols as values, it has nothing to do with variables.