Exactly. `'e` is a reader macro that gets read as `(quote e)`.
When it's already under a quote, the quoted quote is treated as a symbol:
> (dict-ref '('yay) 'quote)
'(yay)
> (quote ((quote yay)))
'('yay)
> '((quote yay))
'('yay)
> (dict-ref '((quote yay)) 'quote)
'(yay)
--
William J. Bowman
On
Indeed,
> (dict-keys '('yay))
'(quote)
> (dict-values '('yay))
'((yay))
> (dict-ref '('yay) 'quote)
'(yay)
So... this boils down to:
> (equal? '('yay) '((quote yay)))
#t
--
Yury Bulka
https://mamot.fr/@setthemfree
#NotOnFacebook
William J. Bowman writes:
> try (dict-ref ‘(‘yay) ‘quote)
try (dict-ref ‘(‘yay) ‘quote)
--
Sent from my phoneamajig
> On Feb 27, 2021, at 15:31, Yury Bulka wrote:
>
> Dear Racketeers,
>
> I have noticed something I don't understand:
>
>> (dict? '(yay))
> #f
>> (dict? '('yay))
> #t
>> (dict-ref '('yay) 'yay)
> ; dict-ref: no value for key: 'yay
Dear Racketeers,
I have noticed something I don't understand:
> (dict? '(yay))
#f
> (dict? '('yay))
#t
> (dict-ref '('yay) 'yay)
; dict-ref: no value for key: 'yay in: '('yay)
I'm puzzled - what makes '('yay) a dict compared to '(yay)?
(Running Racket 7.8 on Linux).
--
Yury Bulka
4 matches
Mail list logo