On Mon, Apr 20, 2020 at 6:50 PM Jon Zeppieri wrote:
> There's no trick to it:
>
> #lang racket/base
>
> (require racket/generic)
>
> (define-generics foo
> (foo-do foo x))
>
> (struct thing (x)
> #:methods gen:foo
> [(define (foo-do f x)
> (thing x))])
>
>
> On Mon, Apr 20, 2020 at 6:32 PM Kevin Forchione wrote:
> >
> > Hi guys,
> > How do you return an instance of the structure type from the struct’s
> #:methods? This is would seem to be a common situation, but it has me
> stumped.
> >
> > Kevin
>
Note that if you're getting fancy with structs then you might want to check
out: https://docs.racket-lang.org/struct-plus-plus/index.html
Among other things, it auto-generates functional setters and functional
updaters, a keyword constructor, dotted accessors, reflection data, and
allows for contracts on individual fields and enforcement of relationships
between fields.
>
> > --
> > 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+unsubscr...@googlegroups.com.
> > To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/EE404363-995C-4888-8B43-E463EB3C7418%40gmail.com
> .
>
> --
> 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+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/CAKfDxxx6b2yq6Sn6zzr49oZqGXc5h4CA-Vj%3DVYEkLbmaBOi3Pg%40mail.gmail.com
> .
>
--
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/racket-users/CAE8gKof3k4GdbTerX-ss2uJCg7jQB2XWvC59P1SKYUbuCnrXgg%40mail.gmail.com.