我和艾达有个关于功能的问题。
我看了一个关于有理数的代码,我不明白这个程序是如何运行的。
例如:
This is rational.ads
function "+"(R1,R2: Rationnel) return Rationnel;
function "-"(R1,R2: Rationnel) return Rationnel;
function "-"(R : in Rationnel) return Rationnel;
function "*"(R1,R2: Rationnel) return Rationnel;
function "/"(R1,R2: Rationnel) return Rationnel;我是rational.adb
function "+" (R1,R2: Rationnel) return Rationnel is
N,D : Integer;
begin
N:= R1.num *R2.den + R2.num*R1.den;
D:= R1.den*R2.Den;
return Simplification ((N,D));
end "+";
function "-" (R1,R2: Rationnel) return Rationnel is
N : Integer;
D : Positive;
begin
N:= R1.num *R2.den - R2.num*R1.den;
D:= R1.den*R2.Den;
return Simplification ((N,D));
end "-";这种认识对我来说不是个问题。我不明白下面这句话
R1,R2,R3 : rationnel;
R1 := R2 + R3;如何使用函数"+",使用这种顺序的参数?
A+B : Argument1 = A,Argument2 =B
而不是像我们通常对函数所做的那样:R1 := +(R2,R3)。
我希望我讲得够清楚,我的英语也不太难读;-)
发布于 2014-03-01 23:31:46
你要处理的是函数表示法和内插法表示法之间的区别。
给予:
Function "+"(Left, Right: Rational) return Rational;我们知道,上述情况可以这样称呼:
some_value:= "+"( Left => R1, Right => R2 );这实际上与以下几点相同:
-- In infix-notation R1 is on the Left, and R2 is on the Right.
some_value:= R1 + R2;https://stackoverflow.com/questions/22121635
复制相似问题