On both Squeak 3.9 (I supose others too) and Pharo:
Fraction readFromString: '1/2'� ---> 1
'1/2' asNumber ---> 1
fix
Number #readFrom: stringOrStream
��� "Answer a number as described on aStream.� The number may
��� include a leading radix specification, as in 16rFADE"
��� | value base aStream sign |
��� aStream _ (stringOrStream isString)
��� ��� ifTrue: [ReadStream on: stringOrStream]
��� ��� ifFalse: [stringOrStream].
��� (aStream nextMatchAll: 'NaN') ifTrue: [^ Float nan].
��� sign _ (aStream peekFor: $-) ifTrue: [-1] ifFalse: [1].
��� (aStream nextMatchAll: 'Infinity') ifTrue: [^ Float infinity * sign].
��� base _ 10.
��� value _ Integer readFrom: aStream base: base.
"this line "
��� (aStream peekFor: $/) ifTrue:[^Fraction��� numerator: value denominator: (aStream upTo: $\) asInteger].
"� added "
��� (aStream peekFor: $r)
���
��� ��� ifTrue:
��� ��� ��� ["<base>r<integer>"
��� ��� ��� (base _ value) < 2 ifTrue: [^self error: 'Invalid radix'].
��� ��� ��� (aStream peekFor: $-) ifTrue: [sign _ sign negated].
��� ��� ��� value _ Integer readFrom: aStream base: base].
��� ^ self readRemainderOf: value from: aStream base: base withSign: sign.
--
Norberto Manzanos
Instituto de Investigaciones en
Humanidades y Ciencias Sociales (IdIHCS)
FaHCE/UNLP - CONICET
Calle 48 e/
6 y 7 s/N� - 8� piso - oficina 803
Tel: +54-221-4230125 interno
262