Call a function: Difference between revisions

Content added Content deleted
Line 1,007: Line 1,007:
# of its definition</lang>
# of its definition</lang>
=={{header|Elena}}==
=={{header|Elena}}==
ELENA 3.4:
ELENA 4.x:
Declaring closures
Declaring closures
<lang elena>
<lang elena>
var c0 := [ console writeLine("No argument provided") ].
var c0 := (){ console.writeLine("No argument provided") };
var c2 := (:a:b)<int,int>[ console printLine("Arguments ",a," and ",b," provided") ].
var c2 := (int a, int b){ console.printLine("Arguments ",a," and ",b," provided") };
</lang>
</lang>
Calling a closure without arguments
Calling a closure without arguments
<lang elena>
<lang elena>
c0().
c0();
</lang>
</lang>
Calling a closure with arguments
Calling a closure with arguments
<lang elena>
<lang elena>
c2(2,4).
c2(2,4);
</lang>
</lang>
Passing arguments by reference:
Passing arguments by reference:
<lang elena>
<lang elena>
var exch := (:x)<ref<object>>[ x value := 2 ].
var exch := (ref object x){ x := 2 };
var a := 1.
var a := 1;
exch(&a).
exch(ref a);
</lang>
</lang>