Я пишу простую формулу excel для построителя выражений linq в F #. Я разбираю формулы в AST и строю выражения с использованием рекурсивного выражения. Я stucked при прохождении среды (на карте (строка, выражение) пар) генерируемую выражение в том, что вызов:Циклический тип ссылки в f #
Expression.Lambda<System.Func<double>>(eval pexpr).Compile()
Где PExpr разбирается АСТ и Eval является функцией Построитель выражений.
Проблема с определением типа, который должен выглядеть следующим образом:
type ExprFunc = Func<ExprFunc map, double>
Expression.Lambda<ExprFunc>(eval pexpr).Compile()
Если PExpr содержит ссылку на другое выражение в виде Var («имя»), я хочу, чтобы ввести выражение, которое ищет функцию с " имя "в карте окружения и вызвать его, передавая ту же карту окружения в этом вызове. не
К сожалению, компилятор говорит нет:
Это определение типа предполагает немедленную циклическую ссылку через аббревиатуру
Есть ли способ определить такой тип функции в .net?
Большое спасибо, я попробую это. – rkrahl