Re: [racket-users] [racket users] struct #:methods question

2020-04-21 Thread David Storrs
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.


Re: [racket-users] [racket users] struct #:methods question

2020-04-20 Thread Jon Zeppieri
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
>
> --
> 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.


[racket-users] [racket users] struct #:methods question

2020-04-20 Thread Kevin Forchione
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

-- 
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.