mirror of
https://github.com/rust-lang/rust.git
synced 2025-01-25 22:22:44 +00:00
Add a test that exercises these cases in bind.
This commit is contained in:
parent
cd97f4eed0
commit
418aa52510
20
src/test/run-pass/fixed-point-bind-box.rs
Normal file
20
src/test/run-pass/fixed-point-bind-box.rs
Normal 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);
|
||||
}
|
Loading…
Reference in New Issue
Block a user