2010-07-27 10 views
12

w F #, można zdefiniować operatorów niestandardowe jakF # Operatorzy klienta Pierwszeństwo

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

przeciwieństwie Haskell, operatorzy niestandardowe zdefiniowane są bez precedensami. Jakie są priorytety operatorów niestandardowych operatorów w F #?

Odpowiedz

20

Priorytety operatorów są określane przez pierwsze znaki, zgodnie z predefined table.

+2

Zobacz także specyfikację F #: http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html#_Toc264041843 – kvb

+0

Nie można znaleźć priorytetu operatorów zaczynających się od ' @ ', ale możliwe jest zdefiniowanie takich operatorów, formatem jest "@". – Gebb

+0

Ze źródła cytowanego przez odpowiedź: "F # obsługuje przeciążanie operatora niestandardowego, co oznacza, że ​​można zdefiniować własne operatory.W poprzedniej tabeli op może być dowolną poprawną (ewentualnie pustą) sekwencją znaków operatora, wbudowaną lub zdefiniowane przez użytkownika. Dzięki tej tabeli można określić, która sekwencja znaków ma być używana przez operatora niestandardowego w celu uzyskania pożądanego poziomu priorytetu. " –