Higher-order functions: Difference between revisions

no edit summary
m (→‎{{header|Perl 6}}: fix markup)
No edit summary
Line 1,721:
 
print( lambda_if(lambda_true)("condition was true")("condition was false") );;</lang>
 
=={{header|M2000 Interpreter}}==
We can pass by reference a standard function, or we can pass by value a lambda function (also we can pass by reference as reference to lambda function)
<lang M2000 Interpreter>
Function Foo (x) {
=x**2
}
Function Bar(&f(), k) {
=f(k)
}
Print Bar(&foo(), 20)=400
Group K {
Z=10
Function MulZ(x) {
=.Z*x
.Z++
}
}
Print Bar(&K.MulZ(), 20)=200
Print K.Z=11
</lang>
 
Example using lambda function
 
<lang M2000 Interpreter>
Foo = Lambda k=1 (x)-> {
k+=2
=x**2+K
}
\\ by ref1
Function Bar1(&f(), k) {
=f(k)
}
Print Bar1(&Foo(), 20)=403
\\ by ref2
Function Bar2(&f, k) {
=f(k)
}
Print Bar2(&Foo, 20)=405
\\ by value
Function Bar(f, k) {
=f(k)
}
\\ we sent a copy of lambda, and any value type closure copied too
Print Bar(Foo, 20)=407
Print Bar(Foo, 20)=407
</lang
 
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==
Anonymous user