Size: a a a

2020 August 10

CD

Constantine Drozdov in rust_offtopic
Kai Ren
сабскрайб у тебя дедуплицируется?
subscribe определен следующим контрактом: гарантируется, что если два вызова get() приведут к разным результатам, между ними было оповещение
источник

CD

Constantine Drozdov in rust_offtopic
это позволяет делать short circuit в &&
источник

p

polunin.ai in rust_offtopic
Constantine Drozdov
ты покажешь свой диплом по преподаванию программирования, или мы поверим людям, у которых он есть?
Твой диплом это не пруф
источник

p

polunin.ai in rust_offtopic
Constantine Drozdov
Java/C# возможный язык обучения
А что такое public static void Main(string[] args)
источник

CD

Constantine Drozdov in rust_offtopic
Kai Ren
сабскрайб у тебя дедуплицируется?
короче, если после оповещения ты не перечитывал, нихера не гарантируется
источник

YS

Y S in rust_offtopic
polunin.ai
А что такое public static void Main(string[] args)
Похоже на точку входа
источник

p

polunin.ai in rust_offtopic
Y S
Похоже на точку входа
А что это значит?
источник

KR

Kai Ren in rust_offtopic
Constantine Drozdov
не знаю слова
источник

CD

Constantine Drozdov in rust_offtopic
ага, короче нихера не гарантируется, см. гарантию
реализация с дедупликацией допустима
источник

KR

Kai Ren in rust_offtopic
Вот в такой ситуации сколько раз у тебя вычислится A, если B и D одновременно изменились?
источник

CD

Constantine Drozdov in rust_offtopic
Kai Ren
Вот в такой ситуации сколько раз у тебя вычислится A, если B и D одновременно изменились?
1
источник

CD

Constantine Drozdov in rust_offtopic
потому что invalidate в post - неявная транзакция
источник

KR

Kai Ren in rust_offtopic
Ну тогда это пулл, да
источник

CD

Constantine Drozdov in rust_offtopic
Kai Ren
Ну тогда это пулл, да
а, кажется я тебя понял
источник

KR

Kai Ren in rust_offtopic
Ну, ок тогда
источник

KR

Kai Ren in rust_offtopic
А чё ты изначально то хотел сказать?
источник

CD

Constantine Drozdov in rust_offtopic
там вроде бы by design очень хотелось пририсовать маркер "разрешена работа в push режиме"
источник

YS

Y S in rust_offtopic
polunin.ai
А что это значит?
Доступный другим классам извне метод, единичный экземпляр переменных в нём, без возврата значения после исполнения
источник

NL

Nick Linker in rust_offtopic
Stanislav Popov
фрп кстати я ваще не понимаю. он просто на каждый вызов все пересчитывает заново. а то что он называет пуш это как раз не реактивность а проактивность. вот по пушу я и угорел
Возьми на вооружение следующую интуицию: FRP это как Excel.
У тебя в Эксельке ячейки зависят друг от друга, иногда даже образуют циклы (Мелкософтовский Эксель это не позволяет, но в принципе почему бы и не разрешить).

Когда ты меняешь значение в одной из ячеек, все остальные зависимые пересчитываются, только в общем случае во время пересчёта функция может пойти в сеть или в файл, обрушиться с ошибкой, ошибки придётся комбинировать, и обновлять ещё может понадобиться не ячейки, а какие-нибудь элементы управления или состояние в базе данных.

Есть 2 главных стратегии при изменении одной из ячеек;

1. Пересчитывать весь граф зависимых ячеек транзитивно. Можно соптимизировать, когда мы точно знаем, что значение ячейки не изменится, и тем самым сэкономить на дальнейших обновлениях. (это push модель)

2. Просто класть замыкания в зависимые ячейки. Тогда если снаружи придёт запрос "дай мне значение ячейки X421", шестерёнки начинают крутиться и весь граф всех данных, которые влияют на данное значение начинает вычисляться. Это очень близко к ленивым вычислениям в Хаскеле. (это pull модель)

Ну и в принципе вот и всё FRP, остальные сложности в деталях обработки реактивных потоков значений.
источник

YS

Y S in rust_offtopic
Nick Linker
Возьми на вооружение следующую интуицию: FRP это как Excel.
У тебя в Эксельке ячейки зависят друг от друга, иногда даже образуют циклы (Мелкософтовский Эксель это не позволяет, но в принципе почему бы и не разрешить).

Когда ты меняешь значение в одной из ячеек, все остальные зависимые пересчитываются, только в общем случае во время пересчёта функция может пойти в сеть или в файл, обрушиться с ошибкой, ошибки придётся комбинировать, и обновлять ещё может понадобиться не ячейки, а какие-нибудь элементы управления или состояние в базе данных.

Есть 2 главных стратегии при изменении одной из ячеек;

1. Пересчитывать весь граф зависимых ячеек транзитивно. Можно соптимизировать, когда мы точно знаем, что значение ячейки не изменится, и тем самым сэкономить на дальнейших обновлениях. (это push модель)

2. Просто класть замыкания в зависимые ячейки. Тогда если снаружи придёт запрос "дай мне значение ячейки X421", шестерёнки начинают крутиться и весь граф всех данных, которые влияют на данное значение начинает вычисляться. Это очень близко к ленивым вычислениям в Хаскеле. (это pull модель)

Ну и в принципе вот и всё FRP, остальные сложности в деталях обработки реактивных потоков значений.
По циклам - а как же vbs?
источник