mirror of https://github.com/japl-lang/japl.git
51 lines
634 B
Plaintext
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]
|
|
*/
|