Accumulator factory: Difference between revisions

m
Line 2,183:
# Create the accumulator procedure.
result = proc (n: Number): Number =
# Create the accumulator procedure.
case sum.kind
result = proc (n: Number): Number =
of kInt:
case nsum.kind
of kInt:
# Add an int to an int case n.kind
sum.ival += n.ival of kInt:
# Add an int to an int.
of kFloat:
# Add a float to an int => change thesum.ival kind of accumulator to+= floatn.ival
sum = Number(kind: kFloat, fval: sum.ival.toFloat + n.fval)of kFloat:
# Add a float to an int => change the kind of accumulator to float.
of kFloat:
sum = Number(kind: kFloat, fval: sum.ival.toFloat + n.fval)
case n.kind
of kIntkFloat:
# Add an int to a float case n.kind
sum.fval += n.ival.toFloat of kInt:
# Add an int to a float.
of kFloat:
# Add a float to a float sum.fval += n.ival.toFloat
sum.fval += n.fval of kFloat:
# Add a float to a float.
result = sum
sum.fval += n.fval
result = sum
 
#---------------------------------------------------------------------------------------------------
Anonymous user