是否有可能通过参照一个函数的另一个功能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 是的功能,然后返回值的 myFunctionf 施加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]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top