Size: a a a

Scala User Group

2020 September 01

GL

Gennady Lebedev in Scala User Group
Sergey Alaev
Это не советы, это требования. "что", не "как"
это самые что ни на есть требования
источник

GL

Gennady Lebedev in Scala User Group
но чтобы их соблюдать слишком много кода придется признать мусорным и вредным
источник

SA

Sergey Alaev in Scala User Group
Конечно. Это же далеко не единственные требования, и остальные требования вполне могут вступать в конфликт и с инкапсуляцией, и со связностью, и с SRP
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Andreλ
Очень интересный выпуск был про ТФ в скалалазе... но так и остается ситуация:
Мужики, вот это ТФ -
trait AddAlg[F[_], T] {
def add(a: F[T], b: F[T]): F[T]
}

val res: F[Int] = addAld.add(a, b)

А теперь запилите на этом вон ту огромную опердень для бизнеса. )
я не оч понял
источник

Oℕ

Oleg ℕizhnik in Scala User Group
у бизнеса может быть много разных задач
источник

Oℕ

Oleg ℕizhnik in Scala User Group
некоторые из них требуют не монадических языков
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Andreλ
ТФ, по идее, должен помогать создавать границы не только на словах.
границы?
источник

A

Andreλ in Scala User Group
Oleg ℕizhnik
границы?
Ну образно сказал) Про ограничения проверяемые кодом
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну ещё раз,
у вас есть бизнес-задача,
для решения бизнес-задачи, вы разрабатываете язык
язык по сути и представляет уже необходимые ограничения
т.е. вот всё, что на языке можно выразить - вот такие и ограничения
ТФ позволяет оперировать такими языками, решая expression problem
т.е. позволяет разработать несколько микроязыков, и в нужном контексте использовать их "объединение"
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Вы можете обойтись без ТФ любым другим подходом, который позволяет ваши термы на вашем языке выражать
источник

KS

Kirill Shelopugin in Scala User Group
Фримонады, например.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
можете написать АДТ\ГАДТ
источник

Oℕ

Oleg ℕizhnik in Scala User Group
фримонады - да, как вариант ГАДТ
источник

Oℕ

Oleg ℕizhnik in Scala User Group
просто АДТ\ГАДТ в скала 2 пока не очень хорошо позволяют склеивать, наращивать языки
источник

Oℕ

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

A

Andreλ in Scala User Group
Oleg ℕizhnik
Вы можете обойтись без ТФ любым другим подходом, который позволяет ваши термы на вашем языке выражать
Да это понятно. Как без ТФ решать вопросов нет)
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Ну собственно вот и выходит, что все называемые плюсы ТФ это в основном плюсы вообще интерпретации.
А ТФ - это легкодоступная форма интерпретаторов, которая собственно позволяет язык на кучу мелких разбивать.
А там, где вы большое на мелкое разбиваете, а потом в разных местах используете наборы, у вас начинает прослеживаться модуляризация
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Так что я бы сказал, что если с чем ТФ неявно связан - так это с модульностью
источник

𝛈µ

𝛈 µ in Scala User Group
Скоро будет полностью рабочий тайптег для дотти
источник

𝛈µ

𝛈 µ in Scala User Group
В 0.26 включили мой говнопатчик
источник