[Aldor-l] +-> lambda expressions without specifying types
Ralf Hemmecke
ralf at hemmecke.de
Fri Mar 20 20:14:54 EDT 2009
If I did not make a mistake, the grammar in the Aldor User Guide seems
to allow something like x+->x+1.
But in the program below the Aldor compiler (1.1.0) cannot/does not
infer the type of the lambda expression in baz.
Stephen, is that intended or is that just a short-coming of the compiler?
Ralf
---------------------------------------------------------
>aldor -fx -laldor aaa.as
"aaa.as", line 9: baz(i: Integer): Integer == foo((x +-> x-1), i);
...................................^
[L9 C36] #1 (Error) Expecting a comma separated list of parameters.
---rhxBEGIN aaa.as
#include "aldor"
Aaa: with {
foo: (Integer -> Integer, Integer) -> Integer;
bar: Integer -> Integer;
bar: Integer -> Integer;
} == add {
foo(f: Integer->Integer, i: Integer): Integer == f i;
bar(i: Integer): Integer == foo((x: Integer): Integer +-> x+1, i);
baz(i: Integer): Integer == foo((x +-> x-1), i);
}
main(): () == {
import from String, Character, TextWriter, Integer, Aaa;
stdout << foo(bar, 1) << newline;
stdout << bar 1 << newline;
stdout << bar 1 << newline;
}
main();
---rhxEND aaa.as
More information about the Aldor-l
mailing list