Size: a a a

Elm Lang сообщество разработчиков

2018 May 14

AK

Andrey Koppel in Elm Lang сообщество разработчиков
так точно можно
источник

AK

Andrey Koppel in Elm Lang сообщество разработчиков
сначала разобрать, потом собрать опять
источник

к

кана in Elm Lang сообщество разработчиков
кек
источник

к

кана in Elm Lang сообщество разработчиков
чет это
источник

к

кана in Elm Lang сообщество разработчиков
не сильно расширяемые рекорды
источник

к

кана in Elm Lang сообщество разработчиков
type alias X a =
   { a | f1 : Int }


type alias Y =
   X { f2 : Int }


f : X {} -> Y
f x =
   { f1 = x.f1
   , f2 = 1
   }
источник

к

кана in Elm Lang сообщество разработчиков
но причина вроде понятна
источник

к

кана in Elm Lang сообщество разработчиков
чтобы такого не было (лишнего поля)
type alias X a =
   { a | f1 : Int }


type alias Y =
   X { f2 : Int }


f : X { d : Int } -> Y
f x =
   { f1 = x.f1
   , f2 = 1
   }
источник

к

кана in Elm Lang сообщество разработчиков
а, ну вроде еще {x|} - обновление поля, а не добавление, так что довольно логично все же
источник

к

кана in Elm Lang сообщество разработчиков
тут жиес победил
источник

к

кана in Elm Lang сообщество разработчиков
type X<A> = {| ...A, a: number |};
type Y = X<{||}>;
type Z = X<{| b: number |}>

function f(x: Y): Z {
 return { ...x, b: 0 };
}

const x = f({ a: 1 });
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
Да, так-то можно, но у меня много (10+) полей в обоих, не хотелось бы их повторять постоянно. Думал какую-то тайну синтаксиса не знаю.
источник

AK

Anton Kotenko in Elm Lang сообщество разработчиков
Понятно :)
источник
2018 May 15

NK

ID:536005385 in Elm Lang сообщество разработчиков
кана
и ни lazy, ни keyed тут никак не помогут
Да помогут, помогут.
https://ellie-app.com/k2M2ntrRna1/0 не вводите людей в заблуждение лучше учите матчасть
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
При работе смотрите logs внизу справа
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
кана
https://github.com/kana-sama/elm-perf-example - примитивнейшний пример, когда ни keyed, ни lazy никак не помогут по очевидным причинам
Спорим на ящик пива что "очевидные причины" только у вас в голове
источник

к

кана in Elm Lang сообщество разработчиков
Так это другая модель
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
Сути это не меняет. Ну поправлю я "ту" модель
источник

к

кана in Elm Lang сообщество разработчиков
ну в смысле я не про то
источник

к

кана in Elm Lang сообщество разработчиков
в вашем примере вы передаете не всю модель
источник