Doge
Но с помощью использования sealed и final ты можешь свою АДТ в этом плане полностью обезопасить от наследования вне файла, где она определена.
Romɑn
кароче основной вопрос: есть ф-ция intOrbool которая ts let myVariant = intOrbool (); //myVariant : int | bool и есть ф-ция givemeBoolOrIntOrString которая ts let whatever = givemeBoolOrIntOrString ( smth) ; можно ли в скала сделать так чтоб ts givemeBoolOrIntOrString ( intOrbool () ) ?
Doge
А какой тип у givemeBoolOrIntOrString?
Romɑn
на выходе?
Doge
И да, не путай ADT и union типы - это две разные вещи
Doge
на выходе?
В принципе сигнатура
Romɑn
я и стараюсь не путать)
Doge
sealed trait + case class - это именно аналог ADT, а не union типов.
Doge
Честные union типы будут в dotty: https://dotty.epfl.ch/docs/reference/new-types/union-types.html
Romɑn
В принципе сигнатура
function givemeBoolOrIntOrString (a : int | string | bool) { ...}
Doge
Сейчас можно эмулировать через Either и всякие coproduct, но это требует явного запихивания значений в них
Doge
function givemeBoolOrIntOrString (a : int | string | bool) { ...}
В скале сейчас так сделать нельзя, потому что нету union типов.
Doge
Можно эмулировать, но это будет не совсем то, что нужно.
Romɑn
да, я уже понял . Когда же дотти будет? Когда там будет менее многословны синтаксис?)
Doge
да, я уже понял . Когда же дотти будет? Когда там будет менее многословны синтаксис?)
Через пару лет, скорее всего. Синтаксис там не сильно изменится. Для описания ADT появляется enum, но оно не сильно менее многословное: https://dotty.epfl.ch/docs/reference/enums/adts.html
Doge
https://dotty.epfl.ch/docs/reference/new-types/intersection-types.html оооо!
Это и сейчас для трейтов через with можно описать.
Romɑn
https://dotty.epfl.ch/docs/reference/new-types/match-types.html ООО
Doge
И сразу вопрос по аналогу scala.js для dotty
Пока непонятно. Были планы, но на это нужно время, пока у них его нет
Doge
Но как говорят, там более-менее понятно что нужно делать, так что вполне вероятно, что ближе к выходу дотти найдутся энтузиасты, которые возьмутся за эту задачу
Romɑn
https://dotty.epfl.ch/docs/reference/new-types/dependent-function-types.html много интеерсной магии
Doge
Ну то что Implemented - это в принципе реально в том или ином виде сделано
Vladislav
этому верить нельзя?
HList это листы с элементами разных типов?
Doge
Считай tuple произвольной длины
Hog
Мне тут кстати предлагают на скале пописать.
Жалко, конечно. Но я бы согласился. Рынок ширше.
Vladislav
Считай tuple произвольной длины
А практическое применение какое?
Doge
Жалко, конечно. Но я бы согласился. Рынок ширше.
Имхо, конечно, но скала сейчас интереснее и как язык будет. Да, многословна, но система типов одна из самых мощных. Да и скала ФП экосистема очень быстро развивается. Аналог той же кото-экосистемы очень сложно в других технологиях найти.
Vasily
cats
Vasily
Либа такая
Romɑn
аа
Vasily
Написанная накуренными хаскеллистами
Doge
А практическое применение какое?
Используется для автовывода тайпклассов в шейплессе. У тебя любой ADT можно представить как сочетание Coproduct'ов (аналог Either произвольной длины) и HList'ов. Дальше определяешь инстанс твоего тайпкласса для произвольного HList'а и Coproduct'а => получаешь автоматический вывод для любого ADT
Vasily
В фшарпе, конечно, многого не хватает
Doge
Написанная накуренными хаскеллистами
Такой scalaz была. cats в этом плане все же сильно дружелюбнее.
Romɑn
@DogeShibu как у дотти с жабалибами?
Doge
Берешь и используешь.
Doge
В обратную сторону уже сложнее
Doge
Т.е. тут как у F# с C# ситуация
Vladislav
В обратную сторону уже сложнее
Так же как и в дотнете лучше не торчать наружу всем что класс не напоминает?
Doge
Так же как и в дотнете лучше не торчать наружу всем что класс не напоминает?
Если ты хочешь, чтобы тебя из джавы использовали, то имеет смысл написать какой-то отдельный java api под это. Как сделано у той же akka, у который отдельно scala api, отдельно java api. Но большинство скала либ с этим не парятся, т.к. заточены только под использование со скалой.
Hog
Т.е. это портировали до конца :)
Hog
В фшарпе, конечно, многого не хватает
Не хватает распространённости :)
Doge
Ну в акканете вроде ц# и ф# тоже отдельно :)
Ну акка нет написана на C#, в то время как акка оригинальная на scala
Hog
Акканет на скале не получится!
Doge
Акканет на скале не получится!
Понятное дело, я просто говорю об особенностях выставления АПИ для других языков в платформе.
Hog
Посмотрел в контрибуторов скалаз - да :) там упоротые хаскелисты :)))
Hog
Посмотрел в контрибуторов скалаз - да :) там упоротые хаскелисты :)))
Hog
Акканет на скале не получится!
Romɑn
❗️Проблемы в работе мессенджера Telegram наблюдаются во вторник по всей планете, в том числе и на европейской части территории России, следует из данных на странице сервиса "Downdetector", отслеживающего работу популярных интернет-ресурсов. Пользователи испытывают проблемы с подключением к мессенджеру (94%) и отправкой сообщений (5%). Надеемся, вы прочитали это сообщение 🙈
A64m
> Посмотрел в контрибуторов скалаз - да :) там упоротые хаскелисты :))) ЛОЛШТО?
Крылатый
А вот и он — упоротый хаскелист!
A64m
но я не контрибьютор в скалаз, слава б-гу
Крылатый
А зря.
A64m
нет, не зря
Vasily
нет, не зря
Не стоит оно того?
Vasily
Вот, кстати, раз уж умный человек тут к нам пришел, вопрос есть
Vasily
@A64m_qb0 как считаешь, насколько оправданно тащить монады в продакшн в тех объемах в скале, как это, например, декларируют всякие ДеГузы?
A64m
я сильно сомневаюсь, что писать на скале в фп стиле хорошоая идея, но это лучше спрашивать у того кто на работе на скале пишет/писал, а не у меня. Сам-то я все равно всегда не выдерживал и ударялся в функциональщину даже на таких неподходящих для нее языках как C# и F#
Hog
A64m
всеж основная работа морриса на скале, так что для меня как хаскелиста, миррис - известный скалист, который еще какой-то курс по тайпклассам/линзам на хаскеле делал
A64m
в хаскельном сообществе и всяком опенсорсе он практически никак себя не проявил, немного в твиттере повоевал за злое кубло против снойманитов только
Hog
всеж основная работа морриса на скале, так что для меня как хаскелиста, миррис - известный скалист, который еще какой-то курс по тайпклассам/линзам на хаскеле делал
Он в прошлом году рассказывал, как правительство австралии наняло его евангелистом хаскеля и с тех пор он ездит по миру сеет доброе и вечное
Hog
Сноймана я пробовал слушать :) но ничо не понял
Ayrat
как это связано
Hog
Прикинь
A64m
ну в австралии мощное гнездо хаскелистов
Vasily
ну в австралии мощное гнездо хаскелистов
В Австралии много всякого странного. Крокодилы, змеи, пауки, хаскеллисты, кенгуру