Прежде всего, я считаю, что лучше всего ограничить количество пользовательских операторов, которые вы используете в своем коде, потому что пользовательские операторы затрудняют чтение кода F #. F # позволяет вам определять пользовательские операторы, но он специально не предназначен для того, чтобы сделать это удобным - это имеет смысл для некоторых небольших c языков, специфичных для домена (например, комбинаторов синтаксического анализатора), но не более того.
Итак , хотя я не рекомендую использовать это, есть странный трюк, который вы можете использовать для написания чего-то вроде p1 (<op> l) p2
, который заключается в создании инфиксного <op>
и замене круглых скобок еще двумя настраиваемыми операторами:
let (</) a b = a, b
let (/>) c d = c, d
let (!) f = f
1 </ !10 /> 2
Этот пример просто создает кортеж со всеми тремя аргументами, но если вы реализуете свой logi c в операторе </
, он фактически сделает что-то вроде того, что вы хотите. Но как я уже сказал, я бы не стал этого делать: -).