[racket] Shared and structs with #:auto

From: J. Ian Johnson (ianj at ccs.neu.edu)
Date: Tue Jul 29 18:06:59 EDT 2014

Not built-in. That's what I wished #:auto was, but alas that's not what Racket has. I think common practice is to forget #:auto ever existed.
-Ian
----- Original Message -----
From: "Spencer Florence" <florence at northwestern.edu>
To: "J. Ian Johnson" <ianj at ccs.neu.edu>
Cc: "racket" <users at racket-lang.org>
Sent: Tuesday, July 29, 2014 5:43:52 PM GMT -05:00 US/Canada Eastern
Subject: Re: [racket] Shared and structs with #:auto


Woops. I was under the impression that #:auto worked like an optional argument. Is there any way to do optional constructor arguments with structs (I don't see one but I can hope...)? 



On Tue, Jul 29, 2014 at 4:39 PM, J. Ian Johnson < ianj at ccs.neu.edu > wrote: 


>From the struct docs: 
constructor-id (which defaults to id), a constructor procedure that takes m arguments and returns a new instance of the structure type, where m is the number of fields that do not include an #:auto option. 

You don't give anything to the constructor for #:auto fields. 
-Ian 


----- Original Message ----- 
From: "Spencer Florence" < florence at northwestern.edu > 
To: "racket" < users at racket-lang.org > 
Sent: Tuesday, July 29, 2014 5:32:46 PM GMT -05:00 US/Canada Eastern 
Subject: [racket] Shared and structs with #:auto 



Hi all, 

I'm trying to use shared with a structure that has a field with #:auto 

If I have some structure like this: 


(struct test ([a #:auto]) #:transparent #:mutable) 



this works fine: 


(shared ([b (test)]) b) 


but this errors: 


(shared ([b (test 1)]) b) 

with "shared: wrong argument count for structure constructor; expected 0, found 1 in: (test1 1)" 


Is this a bug? Is there a work around? 

--Spencer 
____________________ 
Racket Users list: 
http://lists.racket-lang.org/users 


Posted on the users mailing list.