Size: a a a

Scala User Group

2020 April 28

Oℕ

Oleg ℕizhnik in Scala User Group
Nikita Vilunov
Какой-нибудь Raise или ContextShift — это тайпкласс или всё-таки такой же интерфейс? ФП челики часто выделяют семантику в такие же интерфейсы, которые не являются тайпклассами
proud ФООП челики
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Пользуются интерфейсами, потому что тайпклассов нет у них
источник

NV

Nikita Vilunov in Scala User Group
Oleg ℕizhnik
Пользуются интерфейсами, потому что тайпклассов нет у них
Тайпклассы у них выражаются интерфейсами, но некоторые интерфейсы не являются тайпклассами, и proud ФООП челики об этом явно пишут
источник

M

Mikhail in Scala User Group
Oleg ℕizhnik
Эта бестолковая беседа началась с того, что ты предлагает внести неоднозначность, получив краткость https://t.me/scala_ru/272644

А теперь предлагаешь избавиться от неоднозначности, опять повторив имя типа, которое и так будет присутствовать в коде в выражении.
раз уж цитируешь - цитируй со смыслом. В контексте Якобы замеченного тобой противоречия я говорю, что нех писать
`object ActorSystem {
def createActorSystem()
}`

а надо писать так, если уж очень хочется внести эксплиситно однозначность:
`object ActorSystem {
def create
}
ActorSystem.create
`
источник

M

Mikhail in Scala User Group
Oleg ℕizhnik
Мало того, это замечание никак не относится к заявлениям о том, что перегрузка - это семантика
Семантика это общий термин. Его можно применить к чему угодно. Если фп челики прибили для себя гвоздями лишь один конкретный контекст для этого слова - будет сложно найти общий язык)
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Mikhail
раз уж цитируешь - цитируй со смыслом. В контексте Якобы замеченного тобой противоречия я говорю, что нех писать
`object ActorSystem {
def createActorSystem()
}`

а надо писать так, если уж очень хочется внести эксплиситно однозначность:
`object ActorSystem {
def create
}
ActorSystem.create
`
нет речь была о том, что бы писать
byConfig, byConfigAndEC, byOptions и т.п. вместо одного create, в исходном предлагалось именно уточнять аргументы в имени, а не результирующий тип
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Mikhail
Семантика это общий термин. Его можно применить к чему угодно. Если фп челики прибили для себя гвоздями лишь один конкретный контекст для этого слова - будет сложно найти общий язык)
какой смысл слова "семантика" применим к перегрузкам "create" и "from" ?
источник

M

Mikhail in Scala User Group
Oleg ℕizhnik
нет речь была о том, что бы писать
byConfig, byConfigAndEC, byOptions и т.п. вместо одного create, в исходном предлагалось именно уточнять аргументы в имени, а не результирующий тип
у тебя результирующий тип один для всех этих методов. мы его уточняем только там где либо компилятор этого требует в силу своей неполноценности, либо где действительно есть вынужденная неоднозначность. и в любом случае я все также топлю за то, чтобы избегать тавтологии без вынужденной необходимости.
источник

AD

Apache DOG™ in Scala User Group
Kain Crow
Как это
Берет какую-то сущность и выдает ее стринг-представление
берет инт и выдаёт стринг представление, берет чар и выдаеёт стринг представление
источник

KC

Kain Crow in Scala User Group
Apache DOG™
берет инт и выдаёт стринг представление, берет чар и выдаеёт стринг представление
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Mikhail
у тебя результирующий тип один для всех этих методов. мы его уточняем только там где либо компилятор этого требует в силу своей неполноценности, либо где действительно есть вынужденная неоднозначность. и в любом случае я все также топлю за то, чтобы избегать тавтологии без вынужденной необходимости.
не нужно переводить тему на уточнение результирующего типа, вернись к обсуждению уточнения аргументов, то, о чём перегрузка и о чём весь разговор, название всех методов createActorSystem никак к дискуссии об  оверлоаде не относится
источник

AD

Apache DOG™ in Scala User Group
твое было бы верно если б ты туда вперел Т
источник

KC

Kain Crow in Scala User Group
Apache DOG™
твое было бы верно если б ты туда вперел Т
А чем отличается Т с двумя различными реализованными имплиситами от просто передачи двух разных по типу параметров

Если по факту работа будет произведена одна и та же над одними и теми же данными с одним и тем же итогом
источник

KC

Kain Crow in Scala User Group
Семантически
Не с точки зрения расширяемости и проч а именно в текущем состоянии.
источник

KC

Kain Crow in Scala User Group
Ты ещё скажи что вызовы foo(1) и foo(2) семантически разные, один берет единицу а другой двойку
источник

M

Mikhail in Scala User Group
Oleg ℕizhnik
не нужно переводить тему на уточнение результирующего типа, вернись к обсуждению уточнения аргументов, то, о чём перегрузка и о чём весь разговор, название всех методов createActorSystem никак к дискуссии об  оверлоаде не относится
что за тема про уточнение аргументов?
источник

M

Mikhail in Scala User Group
Kain Crow
Ты ещё скажи что вызовы foo(1) и foo(2) семантически разные, один берет единицу а другой двойку
возможно кто-то даже захочет зашейдить 2-ку
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Mikhail
что за тема про уточнение аргументов?
https://t.me/scala_ru/272537

fromBigDecimal

а не

createCumulativeCoefficient

поэтому осуждая возможный придуманный тобой вариант createActorSystem ты споришь только сам с собой и уводишь дискуссию в сторону
источник

M

Mikhail in Scala User Group
эм. fromBigDecimal & createCumulativeCoefficient - между собой не сравнивались никогда)

так в чем проблема не заниматься тавтологией и писать
def from(v:BigDecimal) вместо def fromBigDecimal(v:BigDecimal) ?
источник

AD

Apache DOG™ in Scala User Group
Kain Crow
А чем отличается Т с двумя различными реализованными имплиситами от просто передачи двух разных по типу параметров

Если по факту работа будет произведена одна и та же над одними и теми же данными с одним и тем же итогом
потому что там блджад дженерик. Потому что тут у тебя абстрактный параметр который соотвевтствует слову сущность
источник