Add a test that exercises these cases in bind.

This commit is contained in:
Michael Sullivan 2011-07-08 14:23:24 -05:00 committed by Brian Anderson
parent cd97f4eed0
commit 418aa52510

View file

@ -0,0 +1,20 @@
// xfail-stage0
fn fix_help[A,B](@fn (@fn (&A) -> B, &A) -> B f, &A x) -> B {
ret f(@bind fix_help(f, _), x);
}
fn fix[A,B](@fn (@fn (&A) -> B, &A) -> B f) -> (@fn(&A) -> B) {
ret @bind fix_help(f, _);
}
fn fact_(@fn (&int) -> int f, &int n) -> int {
// fun fact 0 = 1
ret if (n == 0) { 1 } else { n*f(n-1) };
}
fn main() {
auto fact = fix(@fact_);
assert(fact(5) == 120);
assert(fact(2) == 2);
}