我是莫扎特盎司的初学者,我想写一个简单的高阶函数,比如{{Add 1} 2},其结果必须是3.我想这就像嵌套调用C,函数可以调用自身吗?我不知道如何定义这个函数,我应该写
declare
fun {Add I}
或
declare
fun {{Add I}J}
? 我真的不知道如何完成这样的功能。我曾多次尝试过,但我从来没有尝试过。
答案 0 :(得分:1)
这样的事情应该有效(未经测试):
declare
fun {Add I}
% define a local function which adds I to its argument
fun {Adder J}
J + I
end
in
% returns this new function
Adder
end
{Show {{Add 1} 2}} % should print 3
% or more verbose:
declare
Add1 = {Add 1}
{Show {Add1 2}}
答案 1 :(得分:0)
简洁代码:
fun{Add I}
fun{$ J} I+J end
end