# [Newbies] Re: Proper fractions?

Bert Freudenberg bert at freudenbergs.de
Thu Jul 26 22:03:36 UTC 2007

Blake, if you actually want to make this work in your image, you
could do this:

Fraction>>printOn: aStream base: base
| int |
(int := self integerPart) = 0
ifTrue: [aStream nextPut: \$(.
numerator printOn: aStream base: base.
aStream nextPut: \$/.
denominator printOn: aStream base: base.
aStream nextPut: \$)]
ifFalse: [aStream nextPut: \$(.
int printOn: aStream base: base.
aStream nextPut: \$+.
self fractionPart printOn: aStream base: base.
aStream nextPut: \$)]

(and delete Fraction>>printOn: which os redundant anyway)

I can see how this would be helpful in debugging if you deal with
fractions a lot.

- Bert -

On Jul 26, 2007, at 23:43 , Bert Freudenberg wrote:

> This would work:
>
> | x |
> x := 4/3.
> '(', x integerPart printString, '+', x fractionPart printString, ')'
>
> and also would have the property of being self-evaluating just like
> fractions did before.
>
> Though I agree with Nic that this is not what I'd want to see by
> default.
>
> - Bert -
>
> On Jul 26, 2007, at 23:17 , nicolas cellier wrote:
>
>> Can the system come pre-programmed with every possible wish of
>> every client for every domain?
>>
>> Propose your extensions, if use is sufficiently wide, they can
>> eventually be adopted in an official image.
>>
>> I'm not sure this one will. It makes sense to you because the
>> fraction denominator is small, a rather ideal case (the quotations
>> case i guess) which does have full generallity.
>>
>> Could you tell me what is 3 (39854788871587/281474976710656)?
>>
>> We have plenty over ways to write fractions (continuous fraction
>> expansion would be one) depending on the domain we are operating...
>> Beside, since integerPart and fractionPart exists, extending is
>> cheap.
>>
>> Nicolas
>>
>> Blake a écrit :
>>> Hey, guys:
>>>     Any way to make the fraction class print itself out with its
>>> integer part separate from its fractional part. In other words,
>>> if I have
>>> 4/3
>>> (an "improper" fraction) can I make it print out as:
>>> 1 1/3
>>> ? I mean, I know I can write a routine that does this but it
>>> seemed odd to me that one doesn't exist.
>>>     (And who came up with that whole "improper" terminology? Some
>>> guys with small numerators, I'd bet....)
>>>     ===Blake===