Scala не позволяет сказать:Почему Scala не разрешает имя параметра в определении типа функции?
def m(f:(numer:Double,denom:Double)=>tan:Double) = {...}
Так же, как аннотирования переменных с типами означает переменный, по крайней мере имеют некоторую документацию, так что позволяет переменным в определении типа функции обеспечивают некоторую документацию. Поскольку это было бы необязательно, программист решил, когда это сделать. Но выше, безусловно, более информативно, чем:
def m(f:(Double,Double)=>Double) = {...}
Будет ли эта дополнительная гибкость нарушать синтаксис языка?
Как только вы идете по этому маршруту, вам в значительной степени придется поддерживать именованные аргументы. То есть вы должны иметь возможность сказать 'f (number = ..., denom = ...)' или 'f (denom = ..., number = ...)'. Конечно, вы можете это исключить, но это непоследовательно. –