Size: a a a

Programming Offtop

2020 August 05

I

Igor in Programming Offtop
источник

AN

Alexander Nozik in Programming Offtop
Достаточно сделать, объект, у которого есть operator fun  T.invoke(change : T.()->Unit): T
источник

ML

Mikhail Levchenko in Programming Offtop
Andrew Mikhaylov
Ну так без линз там получается лапша вроде
state.copy(user = state.user.copy(address = state.user.address.copy(...)))
для этого ручками аккуратно делают понятные функции типа updateUserAddress(block: Address.() -> Address)
источник

AM

Andrew Mikhaylov in Programming Offtop
Igor
хешмапа ... (персистент)
Хорошая шутка, но она в глубокое копирование не умеет.
источник

ML

Mikhail Levchenko in Programming Offtop
иметь линзы на всё подряд делает очень простым хуячить сложные изменения
источник

AM

Andrew Mikhaylov in Programming Offtop
Mikhail Levchenko
для этого ручками аккуратно делают понятные функции типа updateUserAddress(block: Address.() -> Address)
А это что, не линза?
источник

I

Igor in Programming Offtop
Andrew Mikhaylov
Хорошая шутка, но она в глубокое копирование не умеет.
В кложурке умеет, там есть функции для обновления вложенных хешмап
источник

AM

Andrew Mikhaylov in Programming Offtop
Igor
В кложурке умеет, там есть функции для обновления вложенных хешмап
Да ну нафиг мне твоя кложа, мы о котлине))
источник

(

( in Programming Offtop
Кстати говоря
источник

(

( in Programming Offtop
Не знаю, как на хаскеле, но на идрисе точно можно делать типо-индексированные хешмапы, совсем как в кложуре, но с типами
источник

(

( in Programming Offtop
Так, если кому-то интересно
источник

ML

Mikhail Levchenko in Programming Offtop
(
Так, если кому-то интересно
источник

I

Igor in Programming Offtop
(
Не знаю, как на хаскеле, но на идрисе точно можно делать типо-индексированные хешмапы, совсем как в кложуре, но с типами
зачем, если есть тесты
источник

I

Igor in Programming Offtop
источник

DS

Dmitry Sapronov in Programming Offtop
Оффтоп в оффтопе
источник

AM

Andrew Mikhaylov in Programming Offtop
Найс, опять функциональщики дерутся
источник

AM

Andrew Mikhaylov in Programming Offtop
Как там, дед с батей сцепились
источник

O

OlegKrikun in Programming Offtop
Andrew Mikhaylov
Как там, дед с батей сцепились
это ты про Путин vs Лукашенко? =)
источник

AM

Andrew Mikhaylov in Programming Offtop
OlegKrikun
это ты про Путин vs Лукашенко? =)
Та там вообще тушите свет
источник

AD

Aleksey D. in Programming Offtop
Andrew Mikhaylov
Ну так без линз там получается лапша вроде
state.copy(user = state.user.copy(address = state.user.address.copy(...)))
больнее, если тебе нужно применять какой-то апдейт ко внутреннему стейту, но с разными параметрами

class InnerState {
 is SomeMsg -> this.onSomeMsg(true)
}


class OuterState(s: InnerState) {
 is SomeMsg -> s.onSomeMsg(false)
}


пуш onSomeMsg может вернуть не только новый стейт, который просто заново обернешь в OuterState, но еще и команды :(
источник