[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A different approach



On 7/19/05, Jens Axel Søgaard <jensaxel@xxxxxxxxxxxx> wrote:
> felix winkelmann wrote:
> > On 7/18/05, Thomas Lord <lord@xxxxxxx> wrote:
> >>
> >>     It has never been great style in Scheme, even if strictly portable, to
> >>write programs which assume that string->symbol and symbol->string define a
> >>1:1 relationship between the two types.
> >
> > I'm probably missing something obvious, but this strikes me as quite
> > nonsensical.
> > Could you elaborate?
> 
> The culprit is uninterned symbols:
> 
>  > (let ((foo 'foo))
>      (eq? (string->symbol (symbol->string foo))
>        foo))
> #t
> 
>  >(let ((foo (string->uninterned-symbol "foo")))
>    (eq? (string->symbol (symbol->string foo))
>      foo))
> #f
> 

Uninterned symbols are (currently) not provided by standard Scheme,
and can be simulated by some magic prefix in portable code.


cheersm
felix