[racket] how does equal? determine with syntax objects?
Here are some examples:
> > (equal? #'(lambda (x) x) #'(lambda (x) x))
> #f
> > (define so #'(lambda (x) x))
> > (equal? so so)
> #t
Are syntax objects mutable? If so, how would you define a function like eq? say syntax-eq? without using the built-in equality?
Are syntax objects immutable? Why should they be immutable? How does equal? work on such structures normally?
See HtDP on extensional and intensional equality. -- Matthias
On Aug 7, 2014, at 5:58 PM, Alexander D. Knauth wrote:
> How does equal? determine whether two syntax objects are equal?
>
> Does it simply use eq?, or does it check the syntax-e, lexical context, srcloc and properties?
>
>
>
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users