¥class
Cons extends List {
¥ Object first;
¥ List rest;
¥ Cons(Object f, List r) {
¥ first = f;
¥ rest = r;
¥ }
¥ Object getFirst() { return first;
}
¥ List getRest() { return rest; }
¥ List insert(Object e) {
¥ Comparable ce =
(Comparable) e;
¥ Comparable cf =
(Comparable) first;
¥ if (ce.compareTo(cf) <
0) return new Cons(e,this);
¥ else return new Cons(first,
rest.insert(e));
¥ }
¥
¥ List sort() { return
rest.sort().insert(first); }
¥
¥ public String toString() {
¥ // no leading space before
first
¥ return "(" +
first + rest.toStringHelp() + ")";
¥ }
¥ String toStringHelp() {
¥ // leading space before
each elt
¥ return " " +
first + rest.toStringHelp();
¥ }
¥}
¥
¥