ML に eval 関数はありますか?
3 に答える
1
MLは実際には単なる方言ですが、私が使用したML実装(OCaml、F#)には、私が知る限り評価がありません。MLは厳密な型付けを使用するため、これは理にかなっています(型はコンパイル時に認識されます)。評価はその保証を破るでしょう。
しかし、私は明らかにトップレベルのコードを使用するevalの実装をOCamlで見つけました:
于 2010-06-10T14:16:05.403 に答える
0
F#で何らかの評価を行うことは可能ですが、評価するコードは引用符で囲む必要があります。
#r"FSharp.PowerPack.dll"
#r"FSharp.PowerPack.Linq.dll"
(* load the PowerPack *)
open Microsoft.FSharp.Quotations
open Microsoft.FSharp.QuotationEvaluation
let x = <@@ 8*11 @@>
x.EvalUntyped() // = 88
コード引用の詳細:http://msdn.microsoft.com/en-us/library/dd233212.aspx
于 2012-03-17T11:57:02.130 に答える
0
はい、少なくとも SML/NJ と Poly/ML はこれを行うことができます。コードは実行時にコンパイルされ、環境に追加されます。
Poly/ML の場合、ここに実例があります: ML REPL
Poly/ML は、プログラム制御下で ML 環境を管理するなど、より多くのことを行うことができます。また、ブレークポイントで任意の評価を行うソースレベルのデバッグもサポートしています。
于 2016-02-07T22:46:38.720 に答える