Обогащение существующего класса / интерфейса неявным преобразованием (что вы и сделали с doubleToDoublePlus
) - это все о разработке API, когда некоторые классы не находятся под вашим контролем. Я не рекомендую делать это слегка, чтобы сохранить несколько нажатий клавиш или иметь несколько меньших скобок. Поэтому, если важно иметь возможность набирать val h = d hypot x
, дополнительные нажатия клавиш не должны вызывать беспокойства. (могут быть проблемы с распределением объектов, но это не так).
Название и ваш пример также не совпадают:
f(g(h(x)))
можно переписать как f _ compose g _ compose h _ apply x
, если вас беспокоит скобка, или f compose g compose h apply x
, если f, g, h функциональные объекты , а не def .
Но ls map (_ + 1) sum
не являются вложенными вызовами, как вы говорите, поэтому я не уверен, как это относится к названию. И хотя это прекрасно в использовании, разработчики библиотек / языков приложили немало усилий, чтобы упростить его использование, а под капотом это не просто (гораздо сложнее, чем ваша гипотеза пример).