added rest() method

svn: r28
This commit is contained in:
Richard Cobbe 2005-05-31 19:13:29 +00:00
parent 29b7f876a2
commit 11046b5b14

View File

@ -4,6 +4,7 @@ type List {
List addToEnd(Any); List addToEnd(Any);
Any first(); Any first();
List rest();
Any atIndex(int); Any atIndex(int);
Any last(); Any last();
@ -39,6 +40,10 @@ class MTList() : List impl List {
error("The empty list has no elements!"); error("The empty list has no elements!");
} }
List rest() {
error("The empty list has no elements!");
}
List drop(int n) { List drop(int n) {
if n == 0 { if n == 0 {
this : List; this : List;
@ -70,8 +75,8 @@ class MTList() : List impl List {
List filter([Any] -> bool f) { return (this : List); } List filter([Any] -> bool f) { return (this : List); }
export List : add as addToFront, add as addToEnd, export List : add as addToFront, add as addToEnd,
no_elt as first, no_elts as atIndex, no_elt as last, no_elt as first, rest, no_elts as atIndex,
drop, take, reverse, no_elt as last, drop, take, reverse,
ret_other as appendToEnd, ret_other as appendToFront, ret_other as appendToEnd, ret_other as appendToFront,
length, empty, length, empty,
map, fold as foldl, fold as foldr, filter; map, fold as foldl, fold as foldr, filter;
@ -84,6 +89,8 @@ class ConsList() : List impl List {
Any first() { return car; } Any first() { return car; }
List rest() { return cdr; }
Any atIndex(int n) { Any atIndex(int n) {
if n == 0 { if n == 0 {
car; car;
@ -164,7 +171,7 @@ class ConsList() : List impl List {
}; };
} }
export List : addToFront, addToEnd, first, atIndex, last, reverse, export List : addToFront, addToEnd, first, rest, atIndex, last, reverse,
drop, take, appendToEnd, appendToFront, length, empty, drop, take, appendToEnd, appendToFront, length, empty,
map, foldl, foldr, filter; map, foldl, foldr, filter;
} }