A dict? question

29 views
Skip to first unread message

Yury Bulka

unread,
Feb 27, 2021, 6:31:50 PM2/27/21
to racket...@googlegroups.com
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
https://mamot.fr/@setthemfree
#NotOnFacebook


William J. Bowman

unread,
Feb 27, 2021, 6:35:26 PM2/27/21
to Yury Bulka, racket...@googlegroups.com
try (dict-ref ‘(‘yay) ‘quote)

--
Sent from my phoneamajig

> On Feb 27, 2021, at 15:31, Yury Bulka <setth...@privacyrequired.com> wrote:
>
> Dear Racketeers,
> --
> You received this message because you are subscribed to the Google Groups "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/87mtvpf5pa.fsf%40privacyrequired.com.

Yury Bulka

unread,
Feb 27, 2021, 6:46:01 PM2/27/21
to William J. Bowman, racket...@googlegroups.com
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

unread,
Feb 27, 2021, 6:47:52 PM2/27/21
to Yury Bulka, racket...@googlegroups.com
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
> --
> You received this message because you are subscribed to the Google Groups "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/87k0qtf51n.fsf%40privacyrequired.com.
Reply all
Reply to author
Forward
0 new messages