F# 缺少的方法应用程序应加括号

F# 缺少的方法应用程序应加括号,f#,F#,我读取了xml文件并想比较属性值 let xname name = XName.Get name let xattr (elem: XElement) (name:string) = elem.Attribute(xname name).Value let loc (filename:string) (location:string) = query { for doc in XDocument.Load(filename).Descendants(xname loc

我读取了xml文件并想比较属性值

let xname name = XName.Get name
let xattr (elem: XElement) (name:string) = elem.Attribute(xname name).Value

let loc (filename:string) (location:string) = 
    query {
        for doc in XDocument.Load(filename).Descendants(xname location) do
        where (xattr doc "name").isEqual(location)
        select doc
    }
where(xattr doc“name”).isEqual(location)
行上,编译器抱怨

Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized

我做错了什么?

编译器正在准确地告诉您需要做什么

在本例中,遵循第二个提示:括号

重写表达式:

(xattr doc "name").isEqual(location)
作为

你可能想知道他为什么要我这么做?原因是他不知道一个论点是一个论点还是更多

例如,考虑这个函数调用:

function1 arg1 ()
它有两个参数,但是如果arg1是一个没有参数的函数,并且您需要调用它,那么它应该是:

function1 (arg1 ())

编译器会准确地告诉你需要做什么

在本例中,遵循第二个提示:括号

重写表达式:

(xattr doc "name").isEqual(location)
作为

你可能想知道他为什么要我这么做?原因是他不知道一个论点是一个论点还是更多

例如,考虑这个函数调用:

function1 arg1 ()
它有两个参数,但是如果arg1是一个没有参数的函数,并且您需要调用它,那么它应该是:

function1 (arg1 ())

编译器会准确地告诉你需要做什么

在本例中,遵循第二个提示:括号

重写表达式:

(xattr doc "name").isEqual(location)
作为

你可能想知道他为什么要我这么做?原因是他不知道一个论点是一个论点还是更多

例如,考虑这个函数调用:

function1 arg1 ()
它有两个参数,但是如果arg1是一个没有参数的函数,并且您需要调用它,那么它应该是:

function1 (arg1 ())

编译器会准确地告诉你需要做什么

在本例中,遵循第二个提示:括号

重写表达式:

(xattr doc "name").isEqual(location)
作为

你可能想知道他为什么要我这么做?原因是他不知道一个论点是一个论点还是更多

例如,考虑这个函数调用:

function1 arg1 ()
它有两个参数,但是如果arg1是一个没有参数的函数,并且您需要调用它,那么它应该是:

function1 (arg1 ())

你是怎么知道f#的。你是大师吗?非常感谢。不,我只是每天都用它,在这里回答问题对我的F#流利度也是一个很好的锻炼。你是怎么知道F#的。你是大师吗?非常感谢。不,我只是每天都用它,在这里回答问题对我的F#流利度也是一个很好的锻炼。你是怎么知道F#的。你是大师吗?非常感谢。不,我只是每天都用它,在这里回答问题对我的F#流利度也是一个很好的锻炼。你是怎么知道F#的。你是大师吗?非常感谢。不,我只是每天都用它,在这里回答问题对我的F#流利度也是一个很好的锻炼。