<HTML><BODY><span style="font-size: 12px;">OK. I understood about common case.</span><br><div class="js-helper js-readmsg-msg"><div><div id="style_13963708540000000693_BODY"><br>But may I at least look in compile time what fields the class have?<br><br>(define a (class object% (super-new) (field f1 f2 f3)))<br><br>In runtime I can do (field-names (new a)). But in syntax `a' has no value. Even for struct one can have compile-time information fo accessors, but how to make it with classes?.<br><br><br>Tue, 1 Apr 2014 11:10:09 -0400 от Matthias Felleisen <matthias@ccs.neu.edu>:<br>
<blockquote style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px;">
        <div>
        



    









        
        


        
        
        
        
        

        
        

        
        



<div>
        
        <div>
                
                
                        <div><br>
There can't be: <br>
<br>
(define c-without-fields (class object% (super-new)))<br>
(define c-with-a-field (class object% (super-new) (field [a 0])))<br>
<br>
(define d (class (if (tuesday?) c-without-fields c-with-a-field) (super-new) ... a ...))<br>
<br>
It is impossible to determine whether this module is closed i.e. a valid program. <br>
<br>
<br>
<br>
On Apr 1, 2014, at 11:06 AM, Asumu Takikawa <<a target="_blank">asumu@ccs.neu.edu</a>> wrote:<br>
<br>
> On 2014-04-01 13:43:55 +0400, Roman Klochkov wrote:<br>
>>   Is there a way to inherit all fields ?<br>
>> <br>
>>   For example<br>
>> <br>
>>   (define a (class object% (super-new) (field f1 f2 f3)))<br>
>> <br>
>>   (define b (class a (super-new) (field f4 f5 f6)))<br>
>> <br>
>>   (define c (class b (super-new) (inherit-field f1 f2 f3 f4 f5 f6)))<br>
>> <br>
>>   How to avoid manual enumeration of all f1 ... f6?<br>
> <br>
> I don't think there is, because you don't always know what what fields<br>
> your superclass will have. The `inherit-field` form gives you meaningful<br>
> errors if your superclass turns out not to have the field to inherit,<br>
> but it's not clear what to do for "all fields".<br>
> <br>
> Cheers,<br>
> Asumu<br>
> ____________________<br>
>  Racket Users list:<br>
>  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br>
</div>
                        
                
                
        </div>

        
</div>


</div>
</blockquote>
<br>
<br>-- <br>Roman Klochkov<br>

</div>
                        
                
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>



<br><hr>
<br>-- <br>Roman Klochkov<br><style type="text/css"></style></BODY></HTML>