diff --git a/src/lib/list.rs b/src/lib/list.rs index 885d65faf22..c1c915e3577 100644 --- a/src/lib/list.rs +++ b/src/lib/list.rs @@ -70,6 +70,20 @@ fn car[T](&list[T] ls) -> T { } } + +fn append[T](&list[T] l, &list[T] m) -> list[T] { + alt (l) { + case (nil[T]) { + ret m; + } + case (cons[T](?x, ?xs)) { + let list[T] rest = append[T](*xs, m); + ret cons[T](x, @rest); + } + } +} + + // Local Variables: // mode: rust; // fill-column: 78;