At second thought I'll use syntax-local-name to infer names to structs
(in an immutable field and using prop:custom-write)
Does not give me the variable in which an instance originally was defined,
but that is less important .
Not being able to spot the original definition of an instance in case
Thanks for your quick reply.
Yes I want the binding identifier. Alas.
Nevertheless I am happy with the separation between expansion time and run
time.
I have decided not to redefine define.
Jos
On Sat, 27 Feb 2021 at 20:56, Matthew Flatt wrote:
> If you're just interested in the symbolic name
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
If you're just interested in the symbolic name "x", as opposed to the
binding identifier, then see `syntax-local-name` or
`syntax-local-infer-name`.
If you want the binding identifier, though, that's not available.
Matthew
At Sat, 27 Feb 2021 20:52:23 +0100, Jos Koot wrote:
> Hi
>
> Consider:
Hi
Consider:
(define-syntax (my-syntax stx) blah ...)
(define x (my-syntax blah ...)
Is it possible for syntax my-syntax such as to know (at expansion time)
that is used as the expr of variable x in the expression of the definition?
Probably this is possible by redefining syntax define, but can
8 matches
Mail list logo