Size: a a a

Programming Offtop

2020 October 07

ML

Mikhail Levchenko in Programming Offtop
Mikhail Levchenko
банальный опрос канала – это и есть TEA. Просто тебе нужно сделать сайд-эффект до выполнения логики и получить результат
например, извлечь юзера из базы
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Nozik
Неизменяемые состояния - это нормально. Но конкретно линзы - они очень искуственны вне хаскеля. Да и в хаскеле выглядят ужасно
Ну то есть изначальный тезис о том, что линзы не нужны а языке с измененяемыми состояниями, выходит, таки мимо?)
источник

AK

Anton Korotkikh in Programming Offtop
Mikhail Levchenko
для того чтобы это состояние не изменять, епта
есть более элегантные способы получать неизменяемые состояния, например immer какой-нибудь, работаешь со структорой как с обычной мутабельной без всяких выебонов, потом получаешь на выходе новую с дифом
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Приятно видеть, как образованные люди снова дискуссию сводят к абсурду.
Это риторический прием - абсурдизация. Призван всего лишь показать то, что сколь угодно абсурдную гипотезу можно пропихнуть если не следовать принципу бритвы Окама
источник

AK

Anton Korotkikh in Programming Offtop
Mikhail Levchenko
банальный опрос канала – это и есть TEA. Просто тебе нужно сделать сайд-эффект до выполнения логики и получить результат
ну да, берешь и делаешь, зачем все эти сложности с коэффектами и прочими заумными абстракциями?
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Nozik
Я бы в принципе согласился, если бы речь шла о том, что используется и измененное состояние и родное. Если используется только измененное - это костыль
Ну почему же костыль? На этом "костыле" построено несколько архитектур, плюс под него вполне себе пилится StateFlow / SharedFlow в корутинах.
источник

ML

Mikhail Levchenko in Programming Offtop
Alexander Nozik
Неизменяемые состояния - это нормально. Но конкретно линзы - они очень искуственны вне хаскеля. Да и в хаскеле выглядят ужасно
ну то что выглядят ужасно – это ничего страшного. просто пока не придумали сахарку. Например, проперти делегаты как концепция существовали и раньше, просто были тоже страшненькие. но ими пользовались, когда нужно
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Ну почему же костыль? На этом "костыле" построено несколько архитектур, плюс под него вполне себе пилится StateFlow / SharedFlow в корутинах.
Давайте оставим архитектуры за кадром. Много что просто слизано с Хаскеля потому что оно так сделано в Хаскеле, а в Хаскеле по-другому сделать нельзя
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Nozik
Это риторический прием - абсурдизация. Призван всего лишь показать то, что сколь угодно абсурдную гипотезу можно пропихнуть если не следовать принципу бритвы Окама
Хорошо, что в цивилизованном мире суды не пользуются бритвой Окама, иначе мы жили бы в интересной правовой системе.
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Nozik
Давайте оставим архитектуры за кадром. Много что просто слизано с Хаскеля потому что оно так сделано в Хаскеле, а в Хаскеле по-другому сделать нельзя
Вам кажется :)
источник

ML

Mikhail Levchenko in Programming Offtop
Anton Korotkikh
есть более элегантные способы получать неизменяемые состояния, например immer какой-нибудь, работаешь со структорой как с обычной мутабельной без всяких выебонов, потом получаешь на выходе новую с дифом
immer это шутка для js, с Kotlin тут таких выебонов не получится сделать (наверное)
источник

IP

Iaroslav Postovalov in Programming Offtop
Alexander Nozik
Я много раз писал, что не так. Линзы - это костыль для изменяемых объектов в неизмнеяемом языке. Нафига их тащить в язык с измнеяемыми состояниями?
че за линзы? оптики из эрроу?
источник

AK

Anton Korotkikh in Programming Offtop
Alexander Nozik
Давайте оставим архитектуры за кадром. Много что просто слизано с Хаскеля потому что оно так сделано в Хаскеле, а в Хаскеле по-другому сделать нельзя
так это получается, просто карго-культ, разрабы без хаскеля, подглядывают за хаскелем и начинают слепо косить под него совершенно другими инструментами на чуждых этому подходу платформах
источник

AM

Andrew Mikhaylov in Programming Offtop
Iaroslav Postovalov
че за линзы? оптики из эрроу?
Необязательно из Эрроу, про подход в целом.
источник

Kd

Konstantin dmz9 in Programming Offtop
Anton Korotkikh
так это получается, просто карго-культ, разрабы без хаскеля, подглядывают за хаскелем и начинают слепо косить под него совершенно другими инструментами на чуждых этому подходу платформах
мы тоже хотим доказыватб теоремы на пхп
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Хорошо, что в цивилизованном мире суды не пользуются бритвой Окама, иначе мы жили бы в интересной правовой системе.
Пользуются. Еще как. Минимальная модель, описывающая факты считается наиболее вероятной. Вариант: человек потерял сознание, потом его не хотели отпускать из больницы, а потом его отравили из Германии, а в больнице при этом исчезли все его анализы и надо их запрашивать в Германии - явно не минимальная модель.
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Вам кажется :)
Вопрос выше остается. Используются ли линзы для ветвления состояния или только для того, чтобы его изменять.
источник

ML

Mikhail Levchenko in Programming Offtop
Alexander Nozik
Давайте оставим архитектуры за кадром. Много что просто слизано с Хаскеля потому что оно так сделано в Хаскеле, а в Хаскеле по-другому сделать нельзя
хорошо, есть идеи как сделать копию глубокого data class без того чтобы нафигачить кучу методов copyWithX? (я уже потихоньку пишу плагин для компилятора чтобы эту тему генерировать, но вдруг уже готовенькое)
источник

AN

Alexander Nozik in Programming Offtop
Anton Korotkikh
так это получается, просто карго-культ, разрабы без хаскеля, подглядывают за хаскелем и начинают слепо косить под него совершенно другими инструментами на чуждых этому подходу платформах
именно
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
хорошо, есть идеи как сделать копию глубокого data class без того чтобы нафигачить кучу методов copyWithX? (я уже потихоньку пишу плагин для компилятора чтобы эту тему генерировать, но вдруг уже готовенькое)
Я в принципе согласен и даже знаю кейс у @lllewik , где это нужно. Но мой вопрос про ветвление остается
источник