[Edu-sig] Freedom: some Smalltalk history and Python implications
Arthur
ajsiegel at optonline.net
Sat Aug 12 02:43:28 CEST 2006
kirby urner wrote:
>> ifTrue:[^self scalarAdd: aNumericObject]
>> ifFalse:[^self vectorAdd: aNumericObject].
>>
>>and then:
>>
>>Vector>>scalarAdd: aNumber
>> x := x + aNumber.
>> y := y + aNumber.
>> z := z + aNumber.
>>
>>Vector>>vectorAdd: aVector
>> x := x + aVector x.
>> y := y + aVector y.
>> z := z + aVector z.
>>
>>The case analysis in Vector>>+ can be quite annoying so often there are
>>other techniques (like double-dispatching) used to implement the proper
>>coercion. The common technique currently used by Squeak coerces based on
>>generality, so to implement the "reverse" set of operations you'd do, e.g.,
>>
>>Vector>>adaptToNumber: aNumber andSend: aSymbol
>> "If I am involved in arithmetic with a scalar, return a Vector of
>> the results of each element combined with the scalar in that
>> expression."
>> ^Vector
>> x: (x perform: aSymbol with: aNumber)
>> y: (y perform: aSymbol with: aNumber)
>> z: (z perform: aSymbol with: aNumber)
>>
>>
At what point does it become appropriate to expect this conversation to
move over to "Squeakland" - where kids who are different than I was are
treated without condescension.
Art
More information about the Edu-sig
mailing list