我正在寫簡單的excel公式給F#中的linq表達式生成器。我使用遞歸表達式構建器將公式解析爲AST並構建表達式。我stucked上傳遞環境(的(字符串表達式)對地圖)來生成表達在電話:f#中的循環類型引用#
Expression.Lambda<System.Func<double>>(eval pexpr).Compile()
凡pexpr解析AST和eval是表達式生成器的功能。
的問題是定義一個類型看起來應該像這樣的:
type ExprFunc = Func<ExprFunc map, double>
Expression.Lambda<ExprFunc>(eval pexpr).Compile()
如果pexpr包含在瓦爾的形式參照其他表達式(「名稱」),我想注入的表達,隨着「搜索功能名稱「並將其調用,並在該調用中傳遞相同的環境映射。
不幸的是,編譯說沒有:
這種類型的定義通過的縮寫
涉及即時循環引用有什麼辦法來定義.NET這樣的功能類型?
非常感謝,我會盡力。 – rkrahl