On Sep 4, 2006, at 6:50 AM, skaller wrote:
> On Sun, 2006-09-03 at 19:37 -0400, Peter Tanski wrote:
>
>> // this mess is due largely to List
>> val flxPty:Company =
>> C (Cons ((D ("R&D", skaller,
>> (Cons ((PU tryzelaar),
>> Cons ((PU percossi),
>> Cons ((PU tanski),
>> Empty[SubUnit]) ))))), Empty[Dept]));
>>
>> var skaller:Manager =
>> E (P ("John Skaller", "email hidden"), S 100000);
>> var tryzelaar:Employee =
>> E (P ("Erick Tryzelaar", "email hidden"), S 80000);
>> var percossi:Employee =
>> E (P ("Martin Percossi", "email hidden"), S 80000);
>> var tanski:Employee =
>> E (P ("Peter Tanski", "email hidden"), S 35000);
>
> BTW: also note this won't work in Felix at present,
> because flxPty tried to start work before tanski woke up :)
I had to read this several times and force myself to believe you are
serious. This isn't remotely functional-program behavior. Take the
infinitely recursive list example in OCaml:
let rec lst = 1 :: lst ;;
Even in the interpreter 'lst' isn't evaluated until it is used;
functional programs require whole-program analysis if for no other
reasons than simplification and variable scoping.
> Generally, expressions are eagerly evaluated, statements
> are executed in order of writing, and finally variant
> constructors always make a heap copy of their argument:
> so you'd be copying an uninitialised variable.
This is not in the documentation and the declaration of Felix as a
"functional" language puts a programmer off guard to expect such
behavior.
-Peter
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language