Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象表达式中的F#Lambda_Lambda_F# - Fatal编程技术网

对象表达式中的F#Lambda

对象表达式中的F#Lambda,lambda,f#,Lambda,F#,我可以看到人们在中这样的对象表达式中使用lambdas,但我不太明白为什么下面的想法不起作用 type fooType = {flar : string; grib: int} let boundFoo = {flar = "hello"; grib = 1} let flack = {boundFoo with grib = fun () -> if boundFoo.flar = "hello" then 5 else 4} 据我所知,它不喜欢fun()->,但fun->和fun x

我可以看到人们在中这样的对象表达式中使用lambdas,但我不太明白为什么下面的想法不起作用

type fooType = {flar : string; grib: int}
let boundFoo = {flar = "hello"; grib = 1}
let flack = {boundFoo with grib = fun () -> if boundFoo.flar = "hello" then 5 else 4}
据我所知,它不喜欢
fun()->
,但
fun->
fun x->
似乎没有什么不同

到目前为止,我在这方面的研究都是在我平常的地方进行的,并没有给我带来任何明确的方向


我在这里遗漏了什么?

在你的代码中,
grib
是一个int。
fun()->……
不是一个int,它是一个函数。因此,
fun()->…
不是字段
grib
的有效值

如果
grib
的类型为
()->int
,那么您的代码就可以工作了(除了您必须将前一行中的
grib=1
更改为
grib=fun()->1,当然了),但这在这里似乎不是一件有用的事情。实际上,函数在这里似乎并不合适。这很好:

let flack = {boundFoo with grib = if boundFoo.flar = "hello" then 5 else 4}