Size: a a a

Programming Offtop

2020 July 04

R

Relax Cats in Programming Offtop
источник

AD

Aleksey D. in Programming Offtop
Igor
ох лол, кажись бот трегирится на на сообщение о новых юзерах)
надо этого бота на входящих
https://ru.botostore.com/c/friedrich_bot/
источник

КР

Кирилл Романенко... in Programming Offtop
@angmarr а как часто твой бот кидает котиков? А то чёт похоже только при входе новых людей.(
источник

AD

Aleksey D. in Programming Offtop
Кирилл Романенко
@angmarr а как часто твой бот кидает котиков? А то чёт похоже только при входе новых людей.(
/cat@relaxcats_bot
источник

R

Relax Cats in Programming Offtop
источник

I

Igor in Programming Offtop
Кирилл Романенко
Переслано от Igor
Так то семантически sealed это конструкторы discriminated union типа.
Было бы странно если бы кейсы enum (которые частный случай DU) были раскиданы по модулю.
Ну я хотел еще набросить, что sealed class были не очень удачным решеним, но передумал
источник

КР

Кирилл Романенко... in Programming Offtop
Igor
Ну я хотел еще набросить, что sealed class были не очень удачным решеним, но передумал
Почему нет? У меня пол-приложения на них. Включая Теа.)
источник

КР

Кирилл Романенко... in Programming Offtop
Реально, задумался и понял, что у меня всё приложение на сеаледах
источник

I

Igor in Programming Offtop
Кирилл Романенко
Почему нет? У меня пол-приложения на них. Включая Теа.)
Потому что это простой для реализации, но концептуальной не очень правильной подход,
выражения tagged union в языке

Скала это проходила при переходе с 2.0 на 3.0
Там тоже изначально были sealed class, НО в 3.0 они сделали enum с ассоциированными значениями
Такой же подход применяется в swift
источник

КР

Кирилл Романенко... in Programming Offtop
Igor
Потому что это простой для реализации, но концептуальной не очень правильной подход,
выражения tagged union в языке

Скала это проходила при переходе с 2.0 на 3.0
Там тоже изначально были sealed class, НО в 3.0 они сделали enum с ассоциированными значениями
Такой же подход применяется в swift
А можно пример?
источник

КР

Кирилл Романенко... in Programming Offtop
Aleksey D.
хаха, прошел тест от Google по корутинам на 7 из 7 ни разу их не используя 🤷
Чё? Такой есть?
источник

I

Igor in Programming Offtop
Кирилл Романенко
А можно пример?
enum ListEnum[+A] {
   case Cons(h: A, t: ListEnum[A])
   case Empty
}


эквивалент

sealed class ListEnum<out A> {
 class Cons(val h : A, val t : ListEnum<A>) : ListEnum<A>
 object Empty : ListEnum<Nothing>
}
источник

КР

Кирилл Романенко... in Programming Offtop
Igor
enum ListEnum[+A] {
   case Cons(h: A, t: ListEnum[A])
   case Empty
}


эквивалент

sealed class ListEnum<out A> {
 class Cons(val h : A, val t : ListEnum<A>) : ListEnum<A>
 object Empty : ListEnum<Nothing>
}
А в чём кардинальная разница?
источник

AD

Aleksey D. in Programming Offtop
Кирилл Романенко
Чё? Такой есть?
источник

R

Relax Cats in Programming Offtop
источник

I

Igor in Programming Offtop
Кирилл Романенко
А в чём кардинальная разница?
@happy_bracket поясни
источник

I

Igor in Programming Offtop
Как минимум одно first-class объект в языке, наверное какие-то плюхи с этого есть, но я не пишу на скале, тем более 3.0
Ну и по идеи в пример с enum один тип, а в sealed class  три
источник

I

Igor in Programming Offtop
И из очевидных минусов, сложный интероп с java
источник

КР

Кирилл Романенко... in Programming Offtop
Igor
Как минимум одно first-class объект в языке, наверное какие-то плюхи с этого есть, но я не пишу на скале, тем более 3.0
Ну и по идеи в пример с enum один тип, а в sealed class  три
> с enum один тип, а в sealed class три

А это типо плюс? Для меня это ОГРОООМНЫЙ минус.
источник

КР

Кирилл Романенко... in Programming Offtop
Для меня смысл силедов не только в том, чтобы в when проверять, а ещё и в том, чтобы весь код был построен на ограничениях по типам. И без отдельных типов для силеда и потомков, примерно всё моё приложение бы полетело в пизду.
источник