Functional programming 有没有办法在Oz中存储函数/过程调用?

Functional programming 有没有办法在Oz中存储函数/过程调用?,functional-programming,higher-order-functions,oz,mozart,Functional Programming,Higher Order Functions,Oz,Mozart,我想知道是否有办法将整个函数调用绑定到Oz中的变量中。 例如,我有: fun {F1 A1 A2} A1+A2 end 和一个局部变量X 我想做的是将调用(按原样){F1 1 2}存储在X中,而不是其结果:3,以便 我可以通过引用X再次调用{F1 1 2} 这在奥兹有可能吗?如果是,怎么做 谢谢您的回答。最简单的方法是动态创建一个不带参数的函数,例如 fun {CreateCall F A1 A2} fun {$} {F A1 A2} end end fu

我想知道是否有办法将整个函数调用绑定到Oz中的变量中。 例如,我有:

fun {F1 A1 A2} 
    A1+A2 
end
和一个局部变量
X

我想做的是将调用(按原样)
{F1 1 2}
存储在
X
中,而不是其结果:
3
,以便 我可以通过引用
X
再次调用
{F1 1 2}

这在奥兹有可能吗?如果是,怎么做


谢谢您的回答。

最简单的方法是动态创建一个不带参数的函数,例如

fun {CreateCall F A1 A2}
   fun {$}
      {F A1 A2}
   end
end

fun {F A1 A2}
   A1 + A2
end

C = {CreateCall F 1 2}

{Show {C}}
函数
CreateCall
创建并返回一个匿名空值函数,该函数使用给定参数调用F。(此技术类似于Haskell等语言中的部分函数应用。)

可以使用库函数
过程将其推广到任意数量的参数。apply
()。如果你想这样做,需要帮助,请告诉我