[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Re: intern a top level variable
From: |
Jean Abou Samra |
Subject: |
Re: Re: intern a top level variable |
Date: |
Wed, 16 Aug 2023 18:13:05 +0200 |
User-agent: |
Evolution 3.48.4 (3.48.4-1.fc38) |
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.
signature.asc
Description: This is a digitally signed message part