2013-04-17 18 views
3

我認爲我將能夠使用引文來完成我想要做的(創造,我可以在一個數據庫存儲和執行以後表達式樹)。但令我非常沮喪的是,我瞭解到引用是不可序列化的,不能編譯(我想避免使用F#PowerPack,因爲性能很差)。F#語錄對任何事物都有用嗎?

所以我很好奇地想知道,是F#報價爲任何東西有用嗎?如果不能將代碼編譯回代碼,那麼代表代碼的數據結構的用途是什麼?我在這裏錯過了什麼?

相關: Another limitation of F# quotations? What are F# quotations?

+3

在F#3.0,你不再需要引用的PowerPack編譯報價。請參閱MSDN上的['LeafExpressionConverter.EvaluateQuotation'](http://msdn.microsoft.com/zh-cn/library/hh324037.aspx)。 – Daniel

+2

核心LIB還包含一個函數,用於將'Expr的<'T>''到表達'。我敢打賭,你可以爲LINQ表達式找到一個很好的序列化庫,如果你可以用它來存儲它們的話。 – Daniel

+0

感謝您閱讀MSDN文章的鏈接。我希望避免轉換爲LINQ表達式的開銷,但我想我必須在這一個上咬一口。 –

回答

4

是的,他們是一些有用的東西。

維基說

F#的報價是用於各種目的,包括編譯F#代碼JavaScript和GPU代碼。

我對它們進行了實驗並創建了一個F#代碼給ActionScript編譯器。

相關問題