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

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

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

14 ответов

19 просмотров

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 нужен что бы предоставить пользователю удобное конструирование объекта/системы или ее испольжование

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта