Size: a a a

Чат подкаста «Разбор Полётов»

2019 October 13

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
В скале это сделать заметно сложнее
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Alexander Levin
Ну, как я представляю, Скала для DSL мощнее будет в таких аспектах:

1. Любая функция может быть инфиксной
2. Более свободный нейминг функций
3. Имплиситы могут дать много возможностей
4. By-name параметры

Но последний пункт может упираться в то, что делать сложнее (пока что), ибо написать расширение просто так (т.е. как сейчас в Котлине и будет в Scala 3) проще, чем написать имплиситную обёртку (как сейчас в Скале)
Ну в котлине очень свободный нейминг, надо только бэктики использовать
источник

AL

Alexander Levin in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Ну в котлине очень свободный нейминг, надо только бэктики использовать
Так это уже по сути дела так себе для DSL. Я пока этому не нашёл применение за пределами совместимости и тестов.
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Как я себе представляю DSL
warehouse {
 5.floors
 racks.in(27..40)
 goodsDistribution(funHere)
 7000.goods
}
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Чего таки хочется от дсл-я (на любом языке) это возможность задать требование присваивания атрибута в блоке.
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Как я себе представляю DSL
warehouse {
 5.floors
 racks.in(27..40)
 goodsDistribution(funHere)
 7000.goods
}
Вот не красиво
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Anton Arhipov
Вот не красиво
Почему?
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Точки лишние
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
5 floors, 7000 goods - вот это было бы красиво
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Хах, ну они автодополнение зовут. Но можно и без них в принципе
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Хах, ну они автодополнение зовут. Но можно и без них в принципе
Как можно? Инфиксные функции требуют параметра
источник

AL

Alexander Levin in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Хах, ну они автодополнение зовут. Но можно и без них в принципе
racks in 27..40 можно. 7000 goods в Котлине нельзя, в Скале можно.
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Alexander Levin
racks in 27..40 можно. 7000 goods в Котлине нельзя, в Скале можно.
Ещё как можно
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Паша Финкельштейн
Ещё как можно
Я весь в догадках, как?
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
val Int.goods
 get()
источник

AL

Alexander Levin in Чат подкаста «Разбор Полётов»
так это с точкой будет
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
И можно записать без точки тогда?
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Аааа
источник

ПФ

Паша Финкельштейн in Чат подкаста «Разбор Полётов»
Я думал вы имеете в виду что так нельзя
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Вот так должно быть

warehouse {
 5 floors
 racks in 27..40
 goodsDistribution(funHere)
 7000 goods
}

И чтоб если ты что забыл написать, то не компилировалось бы ещё
источник