Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        public override RacketInteger Evaluate()
        {
            RacketInteger currentNumber = (RacketInteger)arguments[0].Evaluate();

            return(new RacketInteger(random.Next((int)currentNumber.Value), true));
        }