169 похожих чатов

@Relizarov Есть планы отменить infix? Можно же по умолчанию считать

infix-ной любую функцию с одним аргументом. Для взаимодействия с java кодом было бы удобно.

14 ответов

18 просмотров

1) с двумя параметрами 2) инфиксные функции чаще не нужны, чем нужны, так что нет.

Daniil- Автор вопроса
ᅠ, 🍎 ℰᗽℾҿਮนŭ🦇? ⋈ᛤ६ᏁعዝᏨᛕนҋ❌!
1) с двумя параметрами 2) инфиксные функции чаще н...

1) с одним параметром) eventBus send event 2) инфиксные функции всегда нужны, т.к. обилие скобочек читабельность портит

Daniil- Автор вопроса
ᅠ, 🍎 ℰᗽℾҿਮนŭ🦇? ⋈ᛤ६ᏁعዝᏨᛕนҋ❌!
Ну, один из параметров ресивер

"Туда тоже можно" (С) В любом случае, после изъятия infix одним кодовым словом было бы меньше, а одним удобством было бы больше.

Конечно нет. В Котлине всегда автор функции, а не пользователь функции, решает как её можно использовать. Это обеспечивает согласованность кода и упрощает читаемость кода, так как уменьшает потенциальное разнообразие, когда, одни пользователи пишут код одним образом, а другие — другим. Поэтому в Котлине нет и не будет аналога "universall function call syntax" как в языке D, нельзя опускать скобки при вызове произвольной функции как Groovy, и т.п. Из практических соображений, это не 100% жестко соблюдается (например, infix функции можно вызвать и со скобками, есть и другие похожие послабления), но все-таки позволяет коду на Котлин превосходить по легкости понимания многие другие языки.

Daniil- Автор вопроса
Roman Elizarov
Конечно нет. В Котлине всегда автор функции, а не ...

Вот эта часть ( "infix функции можно вызвать и со скобками") как раз наводит на мысль, что infix не нужен. Если мы имеем возможность писать и со скобками и без, то можно бы предоставить возможность делать так для всех функций с одним аргументом, без потери общности. Авторы функций java библиотек может и не были бы против, но в java нет такой возможности.

Daniil
Вот эта часть ( "infix функции можно вызвать и со ...

infix функции нужны, в основном, для использования в различных DSL-ях. Классический пример можно найти прямо в stdlib: mapOf("a" to "b", "c" to "d"). Такой код, если его написать со скобками, выглядит настолько хуже, что возможность вызова инфиксной функции to со скобками не создает проблем на практике (я ни разу такого не видел).

Daniil- Автор вопроса
Roman Elizarov
infix функции нужны, в основном, для использования...

Dsl без infix-ных функций вообще был бы фикцией) Но на моей практике оказалось, что читабельность от infix повышается почти везде. Трудно придумать пример, где infix бы читабельность ухудшил. Поэтому и хотелось бы иметь такую возможность и при работе с java кодом. То есть даже там, где кодовое слово infix отсутствует.

Daniil- Автор вопроса
Roman Elizarov
infix функции нужны, в основном, для использования...

"в основном, для использования в различных DSL" Собственно, если так подходить, то отмена infix приведет к тому, что появится возможность превращать в DSL даже тот код, который изначально для DSL не предназначался.

Daniil- Автор вопроса
Bohdan Panchenko
Именно.

Ну а что?) отменяем infix, делаем небольшую доработку и древний, как дерьмо мамонта, java код превращается в приемлемый DSL.

Daniil
Ну а что?) отменяем infix, делаем небольшую дорабо...

А я не хочу что бы мой код использовали как дсл, ведь он не для дсл

Daniil- Автор вопроса
Bohdan Panchenko
А я не хочу что бы мой код использовали как дсл, в...

В будущем весь код будет только DSL, потому что так гораздо понятнее. Поэтому не будем ретроградами), а наоборот будем стремиться к лучшему.

Daniil
В будущем весь код будет только DSL, потому что та...

DSL не всегда нужен. DSL нужен что бы предоставить пользователю удобное конструирование объекта/системы или ее испольжование

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта