Partial function application: Difference between revisions

Add Mercury.
m (→‎{{header|Order}}: Forgot the output)
(Add Mercury.)
Line 575:
fsf2[{2, 4, 6, 8}]
->{4, 16, 36, 64}</pre>
 
=={{header|Mercury}}==
<lang mercury>:- module partial_function_application.
:- interface.
 
:- import_module io.
 
:- pred main(io::di, io::uo) is det.
 
:- implementation.
:- import_module int, list.
 
main(!IO) :-
io.write((fsf1)([0, 1, 2, 3]), !IO), io.nl(!IO),
io.write((fsf2)([0, 1, 2, 3]), !IO), io.nl(!IO),
io.write((fsf1)([2, 4, 6, 8]), !IO), io.nl(!IO),
io.write((fsf2)([2, 4, 6, 8]), !IO), io.nl(!IO).
 
:- func fs(func(V) = V, list(V)) = list(V).
 
fs(_, []) = [].
fs(F, [V | Vs]) = [F(V) | fs(F, Vs)].
 
:- func f1(int) = int.
 
f1(V) = V * 2.
 
:- func f2(int) = int.
 
f2(V) = V * V.
 
:- func fsf1 = (func(list(int)) = list(int)).
 
fsf1 = fs(f1).
 
:- func fsf2 = (func(list(int)) = list(int)).
 
fsf2 = fs(f2).</lang>
 
=={{header|Nemerle}}==
Anonymous user