Example #1
0
        // TODO: new cons for each?
        static public Pair append(Pair ls1, Pair ls2)
        {
            if (ls1 == null)
            {
                return(ls2);
            }
            else
            {
                Pair p = ls1.Clone();
                p.cdr = append(ls1.cdr, ls2);
                return(p);

/*				Pair p = Pair.Cons(ls1.car, append(ls1.cdr, ls2));
 *                              p.Info = ls1.Info;
 *                              return p;*/
            }
        }
Example #2
0
        // TODO: new cons for each?
        static public Pair reverse(Pair pair)
        {
            if (pair == null)
            {
                return(null);
            }
            else
            {
                //TODO: change recursive copy to single copy
                Pair p = pair.Clone();
                p.cdr = null;
                return(append(reverse(pair.cdr), p));

/*
 *                              Pair p = new Pair(pair.car);
 *                              p.Info = pair.Info;
 *                              return append(reverse(pair.cdr), p);*/
            }
        }
Example #3
0
        // TODO: new cons for each?
        public static Pair reverse(Pair pair)
        {
            if (pair == null)
                return null;
            else
            {
                //TODO: change recursive copy to single copy
                Pair p = pair.Clone();
                p.cdr = null;
                return append(reverse(pair.cdr), p);

            /*
                Pair p = new Pair(pair.car);
                p.Info = pair.Info;
                return append(reverse(pair.cdr), p);*/
            }
        }
Example #4
0
        // TODO: new cons for each?
        public static Pair append(Pair ls1, Pair ls2)
        {
            if (ls1 == null)
                return ls2;
            else
            {
                Pair p = ls1.Clone();
                p.cdr = append(ls1.cdr, ls2);
                return p;

            /*				Pair p = Pair.Cons(ls1.car, append(ls1.cdr, ls2));
                p.Info = ls1.Info;
                return p;*/
            }
        }