Skip to content

Instantly share code, notes, and snippets.

@krdln
Last active August 29, 2015 14:03
Show Gist options
  • Save krdln/39ca95c0e914ade4f0b3 to your computer and use it in GitHub Desktop.
Save krdln/39ca95c0e914ade4f0b3 to your computer and use it in GitHub Desktop.
use std::util::replace;
enum List<T> {
Cons(T, ~List<T>),
Nil
}
impl<T> List<T> {
fn prepend(&mut self, elem: T) {
*self = Cons(elem, ~replace(self, Nil));
}
fn tail(&self) -> &List<T> {
match *self {
Cons(_, ref tail) -> tail,
Nil -> fail!("empty list")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment