Functional programming 有没有办法在Oz中存储函数/过程调用?
我想知道是否有办法将整个函数调用绑定到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
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
()。如果你想这样做,需要帮助,请告诉我