[plt-scheme] image-snip initialization
On Aug 3, 2006, at 7:02 PM, David Richards wrote:
> Well it helps a little, thanks. But using the PLT object system
> makes me feel like I'm collecting idioms like a philatelist
> collects stamps. Shouldn't object systems should be designed not
> by piling feature on top of feature, but by removing the weaknesses
> and restrictions that make additional features appear necessary?
I have never heard this claimed about an OO language. It's a phrase
from the Scheme report.
OOP requires more syntax than FP but in return, gives you a few more
guarantees. It's a trade off. PLT Scheme's OO system is still less
notationally heavy than, say, Java.
One could argue that any _good_ language should be designed via
orthogonal feature composition. Then again, it's almost a recipe for
not succeeding in the market place. Do you know of a popular language
that satisfies this principle (not counting ALgol 60)?
-- Matthias
> On Aug 3, 2006, at 6:26 PM, Robby Findler wrote:
>
>> In order to make the (old style) positional arguments work with the
>> (new style) by name arguments, there are some confusing interactions
>> (and error messages).
>>
>> In this case, you have to propagate the arguments from the
>> initializer
>> to Image-Snip% to the arguments to image-snip% via super-make-object,
>> which means you need to grab onto and re-send the arguments along.
>>
>> Maybe this example helps?
>>
>> (define Image-Snip%
>> (class* image-snip% ()
>>
> do i do augments and overrides here?
>
>> (init a b c d)
>
> or here?
>
>> (super-make-object a b c d)
>
> or here?
>
>> ))
>>
>> (define Image (make-object Image-Snip% "/Users/dr/test.jpg" 'jpeg
>> #f #t))
>>
>> I believe that the reason image-snip% hasn't been converted to use
>> the
>> by-name arguments is the "case-lambda"-like initialization it has
>> already. In particular, the two argument case is completely different
>> from the 4 argument case, and that isn't handled well by `new'.
>
> I wondered about that.
>
> http://www.fotosearch.com/comp/CRT/CRT388/15455-50dg.jpg
>
> - dr_________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme