japl/tests/japl/lambdas.jpl

51 lines
634 B
Plaintext

/*
[Test: lambdachain]
*/
//[source: raw]
var add2 = lambda(x)
{
return x + 2;
};
var sub2 = lambda(x)
{
return x - 2;
};
var mul2 = lambda(x)
{
return x * 2;
};
print(add2(sub2(mul2(sub2(5)))));
//[end]
/*
[stdout]
6
[end]
[end]
[Test: simple lambdas]
*/
//[source: raw]
var identity = lambda(x) { return x; };
var comparison = lambda(x, y) {
if (x > y) {
return x;
} else {
return y;
}
};
var max = lambda(x, y, z) { return identity(comparison(comparison(x, y), z)); };
print(max(1, 5, 6));
print(max(6, 2, 9));
print(max(1.3, 7, 9.0));
print(max(-4, 3, 2));
//[end]
/*
[stdout]
6
9
9.0
3
[end]
[end]
*/