Re: Question about how to check a symbol is bound

2023-06-22 Thread Shawn Wagner
Looks like unbound? and symbol-value take quoted symbols if passing them
directly: And for list you have to use the transformed name scheme#list

#;2> (unbound? 'x)
#t
#;3> (define x 1)
#;4> (unbound? 'x)
#f
#;5> (symbol-value 'x)
1
#;6> (symbol-value 'scheme#list)
#

On Thu, Jun 22, 2023 at 10:15 PM Pan Xie  wrote:

> Hello
>
> I am new to CHICKEN scheme and here is a (very) quick question of how to
> check whether a symbol is bound.
>
> I know it doable but I can't find the way.
>
> I don't find the methods from the main CHICKEN manual document. Then I
> import the "symbol-value-utils" module. I believe the "unbound?" or
> "symbol-value" will do what I want, but to my surprise they does NOT:
>
> I expect `symbol-value' will give me value of a symbol, but it will
> throw exception for an
> undefined symbol, even I provide the default value:
>
> (symbol-value foo #f)
> Error: unbound variable: foo
>
> I expect (symbol-value (string->symbol "list")) will give me the list
> procedure, but what I get is '#f'
>
> (symbol-value (string->symbol "list"))
> #f
>
> I expect (unbound? foo) will return True value, but it just throw
> exception.
>
> Does CHICKEN scheme provide facilities that make user check whether
> arbitrary symbol is bound or get its value, just like the `boundp' or
> `symbol-value' in Common Lisp?
>
> Thanks
> Pan
>
>
>


Question about how to check a symbol is bound

2023-06-22 Thread Pan Xie

Hello

I am new to CHICKEN scheme and here is a (very) quick question of how to 
check whether a symbol is bound.


I know it doable but I can't find the way.

I don't find the methods from the main CHICKEN manual document. Then I 
import the "symbol-value-utils" module. I believe the "unbound?" or 
"symbol-value" will do what I want, but to my surprise they does NOT:


I expect `symbol-value' will give me value of a symbol, but it will 
throw exception for an

undefined symbol, even I provide the default value:

(symbol-value foo #f)
Error: unbound variable: foo

I expect (symbol-value (string->symbol "list")) will give me the list 
procedure, but what I get is '#f'


(symbol-value (string->symbol "list"))
#f

I expect (unbound? foo) will return True value, but it just throw exception.

Does CHICKEN scheme provide facilities that make user check whether 
arbitrary symbol is bound or get its value, just like the `boundp' or 
`symbol-value' in Common Lisp?


Thanks
Pan