13
A
答えて
20
2つのタイプはかなり似ていますが、表現が異なります。
見積もりはより機能的に設計されています。例えば、
foo a b
は、一連のアプリケーションとして表されます。引用は、F#でのみ利用可能ないくつかの構文を表すことができ、式ツリーを使用するとそれらを隠すことができます。たとえば、
let rec
宣言の場合はExpr.LetRecursive
があります。.NET 3.0では初めて引用符が導入されました。当時の表現木はC#表現しか表現できなかったので、すべてのF#構造体を簡単に捕捉することはできませんでした(引用文は、命令型命令を含むF#式を取り込むことができます)。
見積もりは、再帰を使用して簡単に処理できるようにも設計されています。
ExprShape
モジュールには、4つのケースですべての見積もりを処理できるパターンが含まれています(これは、C#で数十のメソッドを持つビジターパターンを実装するよりも簡単です)。あなたはF#の引用を持っている場合
、あなたはFSharp.Quotations.Evaluatorを使用してC#の式ツリーにそれを翻訳することができます。これは、F#の式ツリーが必要な.NET APIを使用している場合には非常に便利です。私が知る限り、逆の翻訳はありません。
関連する問題
- 1. 式ツリーを引数制約として使用
- 2. Linq式ツリーとフィルタリングロジック
- 3. 式ツリー再利用値?
- 4. 引用形式とハイパーリンクパッケージ
- 5. ローカル変数と式ツリー
- 6. トラバース式ツリー
- 7. ユニットテストの式ツリー
- 8. バイナリ式ツリー
- 9. ByRefパラメータでC#の式ツリーを使用
- 10. 式ツリーは、基本的に私は、この使用して式ツリーやろうとしているクラス
- 11. 式ツリーの作成
- 12. バイナリ検索ツリー式
- 13. 式ツリーの構文
- 14. チェーンのIQueryable式ツリー
- 15. 派生式ツリーJava
- 16. 式ツリーの実行
- 17. String.IndexOfメソッドの式ツリー
- 18. コンパイル式ツリーのパフォーマンス
- 19. C++ shunting yardアルゴリズムと式ツリーの実装
- 20. 式ツリーの構築とExpression.Callメソッドの使用
- 21. Eval()と式コード
- 22. 式ツリー - と2つの式を結合して
- 23. VBA式の引用符
- 24. 式ツリーはスレッドセーフですか?
- 25. 式ツリーは、ローカル関数に
- 26. 式ツリーは - 代替表現
- 27. Linq式ツリーAny()問題
- 28. 式ツリーからのSQL C#
- 29. 条件付きLinq式ツリー
- 30. Haskellの式評価ツリー