public override RacketInteger Evaluate() { RacketInteger currentNumber = (RacketInteger)arguments[0].Evaluate(); float retValue = currentNumber.Value; bool isExact = currentNumber.IsExact; for (int i = 1; i < arguments.Count; i++) { currentNumber = (RacketInteger)arguments[i].Evaluate(); isExact = isExact && currentNumber.IsExact; retValue %= currentNumber.Value; } return(new RacketInteger((long)retValue, isExact)); }
public override RacketInteger Evaluate() { bool isExact = true; List <long> lcmValues = new List <long>(); for (int i = 0; i < arguments.Count; i++) { RacketInteger racketInteger = (RacketInteger)arguments[i].Evaluate(); isExact = isExact && racketInteger.IsExact; lcmValues.Add((long)racketInteger.Value); } long lcm = lcmValues.Aggregate(FindLCM); return(new RacketInteger(lcm, isExact)); }
public override RacketInteger Evaluate() { RacketInteger currentNumber = (RacketInteger)arguments[0].Evaluate(); return(new RacketInteger(random.Next((int)currentNumber.Value), true)); }