AIMA.Core.Logic.FOL.StandardizeApartInPlace.standardizeApart C# (CSharp) Method

standardizeApart() private static method

private static standardizeApart ( List variables, Object expr, int saIdx ) : int
variables List
expr Object
saIdx int
return int
        private static int standardizeApart(List<Variable> variables, Object expr,
                int saIdx)
        {
            Dictionary<String, int> indexicals = new Dictionary<String, int>();
            foreach (Variable v in variables)
            {
                if (!indexicals.ContainsKey(v.getIndexedValue()))
                {
                    indexicals.Add(v.getIndexedValue(), saIdx++);
                }
            }
            foreach (Variable v in variables)
            {
                int i = indexicals[v.getIndexedValue()];
                if (null == i)
                {
                    throw new ApplicationException("ERROR: duplicate var=" + v
                            + ", expr=" + expr);
                }
                else
                {
                    v.setIndexical(i);
                }
            }

            return saIdx;
        }

Same methods

StandardizeApartInPlace::standardizeApart ( Chain c, int saIdx ) : int
StandardizeApartInPlace::standardizeApart ( Clause c, int saIdx ) : int