[plt-scheme] How to display constructor form in PrettyBig
Thanks for the tip. Using #:transparent with #lang scheme works. I've
been having my students use PrettyBig all semester since I didn't
really know what #lang scheme did until just recently. I was hoping
there was some module I could require to automatically print out
structures when the output style of "constructor" is selected.
Is there a way to do it without having to add #:transparent to the
structure definition?
-B
On Apr 5, 2010, at 9:57 AM, Robby Findler wrote:
> I think you want to make the struct transparent:
>
> (define-struct node (value left right) #:transparent)
>
> is how you do that in "#lang scheme", but in pretty big you may or may
> not be using that define-struct.
>
> If you can, your best long-term route is to avoid Pretty Big and write
> files with a language specification at the top. In that case you might
> write:
>
> #lang scheme
> (define-struct node (value left right) #:transparent)
>
> Or this one might be the one you want, depending on the rest of your
> program:
>
> #lang mzscheme
> (define-struct node (value left right) (make-inspector))
>
> Note that after you do this, you should adjust the language in your
> language dialog to the "Module" language (for older versions) or
> choose the "Use the language defined in the source" radio button (for
> the most recent version).
>
> hth,
> Robby
>
> On Mon, Apr 5, 2010 at 11:48 AM, Barry Brown <barry at cs.sierracollege.edu
> > wrote:
>> I'm sorry; I should have mentioned in my original email that I have
>> tried that. It still prints only (make-node ...)
>>
>> -B
>>
>> On Apr 5, 2010, at 9:38 AM, Matthias Felleisen wrote:
>>
>>>
>>> Open the Language Dialog. Choose constructor-style printing. Okay.
>>> Enjoy.
>>>
>>>
>>> On Apr 5, 2010, at 12:27 PM, Barry Brown wrote:
>>>
>>>> How do I get PrettyBig or #lang scheme to display structures
>>>> using the complete constructor form the way Beginning Student does?
>>>>
>>>> I want to do this:
>>>> (define-struct node (value left right))
>>>> (make-node 10 (make-node 5 empty empty) empty)
>>>>
>>>> and have it display as:
>>>> (make-node 10 (make-node 5 empty empty) empty)
>>>>
>>>> instead of:
>>>> (make-node ...)
>>>>
>>>> I have tried (require syntax/struct) and (require syntax/to-
>>>> string) to no avail.
>>>>
>>>> Thanks!
>>>>
>>>> -B_________________________________________________
>>>> For list-related administrative tasks:
>>>> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>>
>>
>> _________________________________________________
>> For list-related administrative tasks:
>> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>