В целом, я не знаю, что одно или другое более идиоматично.
Лично я единственный раз использую <| с "рейзом": </p>
raise <| new FooException("blah")
Кроме того, я всегда использую парены. Обратите внимание, что, поскольку большинство кода F # используют функции с карри, это обычно не подразумевает каких-либо «лишних» паренов:
f arg (g x y)
Когда вы попадаете в функции без карри и конструкторов и так далее, они становятся менее привлекательными:
f arg (g(x,y))
Мы, вероятно, по крайней мере рассмотрим изменение правил языков F #, чтобы приложения с высоким приоритетом связывались еще теснее; прямо сейчас
f g()
разбирает как
f g ()
но многие хотели бы, чтобы оно было проанализировано как
f (g())
(мотивирующий случай в оригинальном вопросе). Если у вас есть твердое мнение по этому поводу, оставьте комментарий к этому ответу.