2010-07-27 8 views
12

In F # können Sie benutzerdefinierte Operatoren wieF # Benutzerdefinierte Operator Präzedenz

let (=~) input pattern = Regex.IsMatch(input, pattern) 

Im Gegensatz zu Haskell, benutzerdefinierte Operatoren definiert, ohne Präzedenzfälle definieren. Was sind die Operatorvorgaben der benutzerdefinierten Operatoren in F #?

Antwort

20

Die Operatorpriorität wird durch die ersten Zeichen gemäß einer predefined table bestimmt.

+2

Siehe auch die F # -Spezifikation: http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html#_Toc264041843 – kvb

+0

Konnte die Priorität der Operatoren nicht finden, die mit 'beginnt @ ', aber es ist möglich, solche Operatoren zu definieren, wobei das Format '@' ist. – Gebb

+0

Von der Quelle zitiert durch die Antwort: "F # unterstützt benutzerdefinierte Operatorüberladung. Dies bedeutet, dass Sie Ihre eigenen Operatoren definieren können. In der vorherigen Tabelle kann OP eine gültige (möglicherweise leere) Sequenz von Operatorzeichen, entweder eingebaut oder So können Sie anhand dieser Tabelle bestimmen, welche Zeichenfolge für einen benutzerdefinierten Operator verwendet werden soll, um die gewünschte Rangfolge zu erreichen. " –

Verwandte Themen