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
> ;;; <unknown-location>: 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.


Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to