Size: a a a

2020 June 11

e

egoarka in rust_offtopic
Doge Shibu
Лол, реально рокет
не шарю, объясни плиз)
источник

r

red75prime in rust_offtopic
toriningen
в расте даже монад нет, о чем тут еще можно говорить - гиблый язык...
Монады есть везде. Не везде их можно выразить явно.
источник

DS

Doge Shibu in rust_offtopic
egoarka
не шарю, объясни плиз)
Полностью бессмысленный веб фреймворк на расте, тормознутый как ад
источник

e

egoarka in rust_offtopic
Doge Shibu
Полностью бессмысленный веб фреймворк на расте, тормознутый как ад
а, все, слышал о таком
ну я его скипнул так как там асинков не было
источник

t

toriningen in rust_offtopic
red75prime
Монады есть везде. Не везде их можно выразить явно.
незримо-то конечно да, всегда рядом.
источник

DF

Dollar Føølish in rust_offtopic
Так рокет же переписали на что то там
источник

DF

Dollar Føølish in rust_offtopic
То ли Токио то ли  асинк стд
источник

DF

Dollar Føølish in rust_offtopic
Типа он стал быстрый
источник

DF

Dollar Føølish in rust_offtopic
В расте есть конкретные монады
источник

t

toriningen in rust_offtopic
как говорили раньше, любой достаточно развитый современный язык содержит себе глючную, неформализуемую и медленную реализацию половины языка Common Lisp
источник

DF

Dollar Føølish in rust_offtopic
Могу скинуть ио например
источник

DF

Dollar Føølish in rust_offtopic
Опшн и резалт уже в стд
источник

r

red75prime in rust_offtopic
toriningen
как говорили раньше, любой достаточно развитый современный язык содержит себе глючную, неформализуемую и медленную реализацию половины языка Common Lisp
Не язык, а программа, по-моему.
источник

t

toriningen in rust_offtopic
red75prime
Не язык, а программа, по-моему.
да, обобщенное 10 правило гринспена
источник

t

toriningen in rust_offtopic
источник

DF

Dollar Føølish in rust_offtopic
Лисп ето Алгол обычный
источник

DF

Dollar Føølish in rust_offtopic
В нем нет фп
источник

DF

Dollar Føølish in rust_offtopic
Но цитата верная
источник

DS

Doge Shibu in rust_offtopic
toriningen
я не могу делиться кодом. поэтому постарался придумать похожий пример.

представь себе какой-нибудь ПИД-регулятор, реализованный в виде класса, который принимает поступающие данные (итеративно), и дает считывать текущие показатели коррекции (конст-методом).

допустим, мы хотим промоделировать, какие параметры ПИД-регулятора приводят в лучшему результату по совокупности метрик.

метрики - это чистые функции, которые зависят от выхлопа ПИД-регулятора (который имеет состояние) и от ряда агрегирующих функций (ну, предположим, пусть будет эстиматор Зигеля и линейная регрессия методом наименьших квадратов). МНК, в свою очередь, зависит от значения ковариации и стандартного отклонения.

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

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

Мое нынешнее решение - некрасивое. Я скармливаю данные не "голове" графа, не самим метрикам — а "хвосту", т.е. самым примитивным агрегирующим функциям без зависимостей, т.е. без исходящих узлов, а остальные узлы формулирую как чистые функции (очевидно, без состояния), которые используют выхлоп этих агрегирующих функций.

Я думал насчет красивого решения, где скармливание данных в верхний класс расчета метрики не мутирует приватный инстанс ПИД-регулятора, а возвращает иммутабельное следующее его состояние - и аналогично со статистическими вычислителями, следующее состояние является иммутабельной копией.

При таком подходе было бы возможно переиспользование копий одного и того же ПИД-регулятора в разных метриках, которые бы адвансились независимо друг от друга, и красиво бы дедуплицировались.

На самом деле красивой дедупликации не произошло, и вышло и медленно, и прожорливо.
Вообще с такими хотелками в хаскель, где лень + шаринг могут такие вещи проворачивать.

Но там конечно, свои проблемы.
источник

t

toriningen in rust_offtopic
Doge Shibu
Вообще с такими хотелками в хаскель, где лень + шаринг могут такие вещи проворачивать.

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