[racket] Dynamically get all fields of an object?
The 'f' isn't a field but a field-s-value.
And (define field-s-value (dynamic-get-field field this)) will avoid some rightward drift.
-- Matthias
On Aug 18, 2013, at 12:56 PM, Johann 'Myrkraverk' Oskarsson wrote:
> "Johann 'Myrkraverk' Oskarsson" <myrkraverk at yahoo.com> writes:
>
>> Hi all,
>>
>> Is it possible to get hold of all fields of an object? Not just their
>> names like with (field-names this) but also (or instead) the values?
>
> Seems like a combination of (field-names ...) and (dynamic-get-field
> ...) do exactly what I want.
>
> (let ((fields (field-names this)))
> (for ((field fields))
> (let ((f (dynamic-get-field field this)))
> (when (is-a? f thing%)
> (send f display-thing))))))))
>
> Unfortunately, I ran out of good names and ended up with a symbol f in
> there.
>
>
> Johann
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users