Kann man das in point free style ausdrücken?

Geben Sie den folgenden Ausdruck ein, um eine IEnumerable von Zahlen zu summieren:

let sum l = l |> Seq.reduce(+)  //version a

ist es möglich, das argument zu beseitigen - wie so?

let sum = Seq.reduce(+)    //version b

Ich erhalte eine Fehlermeldung vom F # -Compiler (FS0030) und erinnere mich an eine "Eta-Konvertierung", aber leider sind meine Kenntnisse über Lambda Calc zu begrenzt, um zu verfolgen, wie die Eta-Konvertierung erfolgt.

Kann das Argument wie in Version b beseitigt werden?

Würde mich bitte jemand auf Literatur verweisen, die eine eta-Konvertierung erklärt und wie sie in diesem bestimmten Codeteil ins Spiel kommt?

FS0030:

stdin (1,5): Fehler FS0030: Wertebeschränkung. Es wurde angenommen, dass der Wert 'sum' den generischen Typ val sum hat: ('_a -> int) when' _a:> seq. Geben Sie entweder explizit die Argumente für 'sum' an, oder, falls Sie nicht beabsichtigen, dass es generisch ist, Fügen Sie eine Typanmerkung hinzu.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage