Здравствуйте, Ikemefula, Вы писали:
I>>>Дополнения должны вызываться точно так же, как и основные методы, что бы не было никакой разницы с тз. синтаксиса.
EP>>1. Чем плоха эта разница?
I>Ломает полиморфизм.
Да, согласен, это главный аргумент за унификацию синтаксиса (только не обязательно в сторону "вызова через точку").
EP>>2. Почему внешние функции должны вызываться как внутренние, а не наоборот?
I>Смотри внимательно пример кода, там оба варианта.
Там оба варианта инфиксные, и нет синтаксиса вызова метода как обычной внешней функции —
method(obj, x).
EP>>3. Extension методы работают только по первому параметру, в то время когда автодополнение возможно по любому — и в этом случае синтаксис "через точку" пролетает.
I>"через точку" это специальный случай
Я о том и говорю — что для общего случая оно не подходит.
EP>>P.S. Вот статьяАвтор: Qbit86
Дата: 21.10.14
от Страуструпа на эту тему и обсуждение.
I>Так себе идея и здесь вроде как нет ничего про "автодополнение возможно по любому".
Синтаксис вызова ортогонален возможности дополнения. Разве что "точка" может служить триггером дополнения, а без неё будет специальный хоткей или таймер.
I>Гораздо полезнее сделать чтото навроде x `f` y
Это мало чем отличается от x.f(y). Да и как например расширить этот синтаксис на мультиметоды, или просто методы с несколькими параметрами?