<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 9.00.8112.16447">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2 face=Arial>1) In section 8 of the Racket reference there is
this example:</FONT></DIV>
<DIV><FONT size=2
face=Arial>-------------------------------------------</FONT></DIV>
<DIV><FONT size=2 face=Arial>Examples:<BR>(define-struct tree (val left
right))</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>> (match (make-tree 0 (make-tree 1 #f #f)
#f)<BR> [(tree a (tree b _ _) _) (list a b)])</DIV>
<DIV><BR>'(0 1)</DIV>
<DIV>----------------------------------</DIV>
<DIV> </DIV>
<DIV>but I wasn't able to find any reference in the documentation to a
constructor form make-struct-id . I'm assuming that in the above
example </DIV>
<DIV>(match (make-tree 0 (make-tree 1 #f #f) #f)</DIV>
<DIV> is equivalent to </DIV>
<DIV>(match (tree 0 (tree 1 #f #f) #f)</DIV>
<DIV> </DIV>
<DIV>Is that correct? Is make-struct-id a deprecated form of the
constructor procedure struct-id?</DIV>
<DIV> </DIV>
<DIV>2) In a module which contains a structure, lets call it "structure-a"
I can have the statement:</DIV>
<DIV>(provide (struct-out structure-a))</DIV>
<DIV>which provides the constructor procedure and the getters and
setters to structure-a</DIV>
<DIV>but I can also have the statement</DIV>
<DIV>(provide structure-a)</DIV>
<DIV>which only provides the constructor function.</DIV>
<DIV>Are there any cases where you would want to have (provide structure-a)
rather than (provide (struct-out structure-a)) ?</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>Thanks,</DIV>
<DIV>Harry Spier</DIV></FONT></BODY></HTML>