F# 中的传递函数
F# 中是否可以将对一个函数的引用传递给另一个函数? 具体来说,我想传递像
foo(fun x -> x ** 3)
这样的 lambda 函数,更具体地说,我需要知道如何在我自己编写的函数中引用传递的函数。
Is it possible to pass a reference to a function to another function in F#? Specifically, I'd like to pass lambda functions like
foo(fun x -> x ** 3)
More specifically, I need to know how I would refer to the passed function in a function that I wrote myself.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将 lambda 函数传递给另一个函数的工作方式如下:
假设我们有一个自己的简单函数,如下所示:
现在您可以向其传递 lambda 函数和一个列表:
在我们自己的函数
functionThatTakesaFunctionAndAList
中,您可以只需将 lambda 函数称为f
,因为您调用了第一个参数f
。函数调用的结果当然是:
Passing a lambda function to another function works like this:
Suppose we have a trivial function of our own as follows:
Now you can pass a lambda function and a list to it:
Inside our own function
functionThatTakesaFunctionAndAList
you can just refer to the lambda function asf
because you called your first parameterf
.The result of the function call is of course:
函数是 F# 中的一等公民。 因此,您可以按照自己的意愿传递它们。
如果您有这样的函数:
并且 f 是函数,则 myFunction 的返回值是应用于 1,2 和 3 的 f。
Functions are first class citizens in F#. You can therefore pass them around just like you want to.
If you have a function like this:
and f is function then the return value of myFunction is f applied to 1,2 and 3.
对的,这是可能的。 手册有以下示例:
Yes, it is possible. The manual has this example: