Беспорядок F# оператора/функции

Я просто начинаю на F#, и при проигрывании вокруг с перегрузкой оператора, я столкнулся с чем-то, что я не вполне понимаю. Теперь, я понимаю, что Вы не можете использовать, например, +* как перегруженный префиксный оператор; это может только быть инфиксный оператор. Вот то, где я запутываюсь, однако:

let (+*) a = a + a * a;;

Если я работаю, это, fsi говорит мне что функция (+*) int->int. Большой, я могу вырыть это - это не перегруженный оператор, просто нормальная названная функция (+*). Так, если я делаю:

printf "%d" ((+*) 6)

Я доберусь 42, как я ожидаю. Однако, если я пробую:

printf "%d" (+*) 6
or
printf "%d" (+*)6

Это не скомпилирует. Я не могу поднять точную ошибку прямо сейчас, поскольку у меня нет доступа к компилятору F# в данный момент, но почему это? Что продолжает привязку здесь?

6
задан Perrako 3 August 2010 в 00:14
поделиться