题
是否有可能通过参照一个函数的另一个功能F#?具体地说,我想通lambda功能喜欢
foo(有趣的x->x**3)
更具体地说,我需要知道我怎么会提到所传递的函数的一个函数,我写我自己。
解决方案
是的,这是可能的。的 手册 有这样的例子:
> List.map (fun x -> x % 2 = 0) [1 .. 5];;
val it : bool list
= [false; true; false; true; false]
其他提示
功能是第一次等公民,在F#。因此,可以通过他们周围就像你想要的。
如果你有一个功能是这样的:
let myFunction f =
f 1 2 3
和 f 是的功能,然后返回值的 myFunction 是 f 施加1、2和3中。
传递氧函数的另一个功能的工作原理是这样的:
假设我们有一个简单我们自己的函数如下:
let functionThatTakesaFunctionAndAList f l = List.map f l
现在你可以通过一个lambda功能和一个清单:
functionThatTakesaFunctionAndAList (fun x -> x ** 3.0) [1.0;2.0;3.0]
在我们自己的功能 functionThatTakesaFunctionAndAList
你可以参考lambda的功能 f
因为你叫你的第一个参数 f
.
该功能的结果叫的是课程:
float list = [1.0; 8.0; 27.0]
不隶属于 StackOverflow