Size: a a a

2021 March 18

P

Pavel in F# Chat
И это токо у одного выражения, а может прогнаться через функцию их многл
источник

VS

Vasily Shapenko in F# Chat
Предметную область хоть скажи
источник

P

Pavel in F# Chat
Есть dsl , пасится и всяко анализируется. Чем-то напоминает компиляторы анализаторы
источник

AT

Anton Ternavsky in F# Chat
Pavel
Их обойти же надо
Ну меня уже этот обход смущает. Т.е. здравствуй BigO(N) как минимум. Ты ищешь элементы по набору каких-то признаков?
источник

VS

Vasily Shapenko in F# Chat
Anton Ternavsky
Ну меня уже этот обход смущает. Т.е. здравствуй BigO(N) как минимум. Ты ищешь элементы по набору каких-то признаков?
Вот и я об этом подумал
источник

P

Pavel in F# Chat
Обход возникает чтоб хэш у корневого взять
источник

VS

Vasily Shapenko in F# Chat
Стоп
источник

VS

Vasily Shapenko in F# Chat
У тебя дерево выражений?
источник

P

Pavel in F# Chat
Да
источник

AT

Anton Ternavsky in F# Chat
Pavel
Да
А почему список тогда?
источник

VS

Vasily Shapenko in F# Chat
Почему не считать хеш инкрементально?
источник

P

Pavel in F# Chat
В некоторых нодах может быть список вложенных
источник

P

Pavel in F# Chat
Хэш фшарп считает, автоматом
источник

VS

Vasily Shapenko in F# Chat
Да пусть вложенных
источник

AT

Anton Ternavsky in F# Chat
Ну смотри, ты парсишь DSL, создаешь AST, он по определению дерево
Откуда у тебя список то берется?
источник

AT

Anton Ternavsky in F# Chat
И второй вопрос-зачем тебе все это дерево обходить? Что-то повеяло похоже задачей оптимизации выражений.
источник

AT

Anton Ternavsky in F# Chat
Верно?
источник

P

Pavel in F# Chat
type Expr =
 | InExpr of Expr * Expr list
источник

I

Ilya in F# Chat
Да он же не обходит его, а складывает в мапу, которая считает хэши и в его случае - каждого чайлда
источник

P

Pavel in F# Chat
Anton Ternavsky
И второй вопрос-зачем тебе все это дерево обходить? Что-то повеяло похоже задачей оптимизации выражений.
Это не я обхожу,это фшарп обходит когда у рутового хэш надо посчитать
источник