154
FRACTION , Init Real with Fraction ,
EXPONENT PART , Append Exponent Part ;
INTEGER NUMBER , Init Real with Integer ,
EXPONENT PART, Append Exponent Part ) , SetRealNumber
= INTEGER NUMBER , Set Integer Number ;
(FRACTION, Init Real with Fraction ,
[ EXPONENT PART, Append Exponent Part ];
INTEGER NUMBER , Init Real with Integer ,
EXPONENT PART , Append Exponent Part ) , SetRealNumber
= INTEGER NUMBER ,
( Set Integer Number ;
Init Real with Integer, EXPONENT PART ,
Append Exponent Part, Set Real Number ) ;
FRACTION, Init Real with Fraction ,
[ EXPONENT PART , Append Exponent Part ] , SetRealNumber
= INTEGER NUMBER ,
(Set Integer Number ;
(Init Real with Integer, EXPONENT PART,
Append Exponent Part ;
INTEGER NUMBER, InitFraction ,
FRACTIONAL PART , AppendFractionalPart ,
Init Real with Fraction, [ EXPONENT PART ,
Append Exponent Part ] ) , SetRealNumber )
= INTEGER NUMBER,
(Set Integer Number ;
(Init Real with Integer, EXPONENT PART , Append Exponent Part ;
InitFraction, FRACTIONAL PART , AppendFractionalPart ,
Init Real with Fraction , [ EXPONENT PART ,
Append Exponent Part ] ) , SetRealNumber ) .
На этом шаге преобразований становится ясно, что если бы семантики были
ориентированы непосредственно на сборку вещественного числа (т.е. элемента
операционной среды Number), а не промежуточных значений (RealNumber,
IntegerNumber, Fraction), то выражение для понятия NUMBER можно было бы
значительно упростить. Действительно, последнее выражение для понятия
NUMBER с учетом переориентации семантик эквивалентно следующему:
NUMBER = INTEGER NUMBER ,
( Init Number with Integer ;
Init Number with Integer , EXPONENT PART ,
Append Exponent Part ;
Init Number with Integer , FRACTIONAL PART ,
AppendFractionalPart ,
[ EXPONENT PART , Append Exponent Part ] )
= INTEGER NUMBER , Init Number with Integer,
[ EXPONENT PART , Append Exponent Part ;
FRACTIONAL PART , AppendFractionalPart,
[ EXPONENT PART , Append Exponent Part]]
= INTEGER NUMBER , Init Number with Integer ,
[ FRACTIONAL PART , AppendFractionalPart ] ,
[ EXPONENT PART , Append Exponent Part ] .